<mxfile host="app.diagrams.net" agent="rndc-diagramas.py" version="24.0.0"><diagram id="c4-dinamica" name="Dinámica · ciclo de un despacho"><mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1654" pageHeight="1169" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="analista" value="&lt;b&gt;Analista&lt;/b&gt;&lt;div&gt;[Persona]&lt;/div&gt;" style="html=1;fontSize=11;dashed=0;whiteSpace=wrap;fillColor=#083F75;strokeColor=#06315C;fontColor=#ffffff;shape=mxgraph.c4.person2;align=center;metaEdit=1;points=[[0.5,0,0],[1,0.5,0],[1,0.75,0],[0.75,1,0],[0.5,1,0],[0.25,1,0],[0,0.75,0],[0,0.5,0]];resizable=0;" vertex="1" parent="1"><mxGeometry x="40" y="40" width="170" height="90" as="geometry"/></mxCell><mxCell id="web" value="&lt;b&gt;Web de despachos&lt;/b&gt;&lt;div&gt;[Angular]&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;" vertex="1" parent="1"><mxGeometry x="310" y="40" width="190" height="90" as="geometry"/></mxCell><mxCell id="api" value="&lt;b&gt;API de despachos&lt;/b&gt;&lt;div&gt;[Quarkus]&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;" vertex="1" parent="1"><mxGeometry x="600" y="40" width="190" height="90" as="geometry"/></mxCell><mxCell id="kafka" value="&lt;b&gt;Kafka&lt;/b&gt;&lt;div&gt;[Confluent]&lt;/div&gt;" style="shape=mxgraph.c4.container;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;strokeColor=#0E7DAD;metaEdit=1;" vertex="1" parent="1"><mxGeometry x="890" y="40" width="190" height="90" as="geometry"/></mxCell><mxCell id="motor" value="&lt;b&gt;Motor de validación&lt;/b&gt;&lt;div&gt;[Camel]&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;" vertex="1" parent="1"><mxGeometry x="1180" y="40" width="200" height="90" as="geometry"/></mxCell><mxCell id="conciliador" value="&lt;b&gt;Conciliador de fletes&lt;/b&gt;&lt;div&gt;[Kafka Streams]&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;" vertex="1" parent="1"><mxGeometry x="310" y="260" width="190" height="90" as="geometry"/></mxCell><mxCell id="integrador" value="&lt;b&gt;Integrador RNDC&lt;/b&gt;&lt;div&gt;[Camel + CXF]&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#23A2D9;fontColor=#ffffff;align=center;arcSize=10;strokeColor=#0E7DAD;metaEdit=1;resizable=0;" vertex="1" parent="1"><mxGeometry x="890" y="260" width="190" height="90" as="geometry"/></mxCell><mxCell id="erp" value="&lt;b&gt;ERP legado&lt;/b&gt;&lt;div&gt;[Oracle]&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#8C8496;strokeColor=#736782;fontColor=#ffffff;align=center;arcSize=10;strokeWidth=1;metaEdit=1;resizable=0;" vertex="1" parent="1"><mxGeometry x="40" y="470" width="170" height="90" as="geometry"/></mxCell><mxCell id="rndc" value="&lt;b&gt;RNDC&lt;/b&gt;&lt;div&gt;[Ministerio de Transporte]&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#8C8496;strokeColor=#736782;fontColor=#ffffff;align=center;arcSize=10;strokeWidth=1;metaEdit=1;resizable=0;" vertex="1" parent="1"><mxGeometry x="890" y="470" width="190" height="90" as="geometry"/></mxCell><mxCell id="app" value="&lt;b&gt;App RNDC Transportador&lt;/b&gt;&lt;div&gt;[Conductor]&lt;/div&gt;" style="rounded=1;whiteSpace=wrap;html=1;labelBackgroundColor=none;fillColor=#8C8496;strokeColor=#736782;fontColor=#ffffff;align=center;arcSize=10;strokeWidth=1;metaEdit=1;resizable=0;" vertex="1" parent="1"><mxGeometry x="1170" y="470" width="190" height="90" as="geometry"/></mxCell><mxCell id="nota" value="&lt;b&gt;Plazos que gobiernan el ciclo&lt;/b&gt;&lt;br&gt;Cumplido a más tardar 72 h después de terminar el viaje. Con más del 20 % de operaciones pendientes el RNDC bloquea nuevos registros. Contingencia: reporte electrónico dentro de 24 h." style="shape=note;whiteSpace=wrap;html=1;backgroundOutline=1;darkOpacity=0.05;fillColor=#fff2cc;strokeColor=#d6b656;size=20;align=left;verticalAlign=top;spacing=8;" vertex="1" parent="1"><mxGeometry x="40" y="650" width="650" height="90" as="geometry"/></mxCell><mxCell id="e0" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;1. Crea la orden y la remesa&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="analista" target="web"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="e1" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;2. POST /remesas&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="web" target="api"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="e2" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;3. Outbox → despacho.remesa&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="api" target="kafka"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="e3" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;4. Valida reglas del Ministerio&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="kafka" target="motor"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="e4" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;5. Remesa validada&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="motor" target="integrador"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="1280" y="130"/><mxPoint x="1280" y="305"/><mxPoint x="1080" y="305"/></Array></mxGeometry></mxCell><mxCell id="e5" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;6. Registra remesa → ingresoid&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center&quot;&gt;[SOAP]&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="integrador" target="rndc"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell><mxCell id="e6" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;7. Expide el manifiesto con sus remesas → número de manifiesto&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center&quot;&gt;[SOAP]&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="integrador" target="rndc"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="830" y="320"/><mxPoint x="830" y="490"/></Array></mxGeometry></mxCell><mxCell id="e7" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;8. Publica el manifiesto; el conductor lo acepta&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="rndc" target="app"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="985" y="590"/><mxPoint x="1265" y="590"/></Array></mxGeometry></mxCell><mxCell id="e8" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;9. Cumplido de remesa y de manifiesto (≤ 72 h)&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center&quot;&gt;[SOAP]&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="integrador" target="rndc"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="1120" y="320"/><mxPoint x="1120" y="490"/></Array></mxGeometry></mxCell><mxCell id="e9" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;10. rndc.resultado por cada paso&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="integrador" target="kafka"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="1020" y="260"/><mxPoint x="1020" y="130"/></Array></mxGeometry></mxCell><mxCell id="e10" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;11. Remesas cumplidas&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="kafka" target="conciliador"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="910" y="130"/><mxPoint x="910" y="200"/><mxPoint x="405" y="200"/><mxPoint x="405" y="260"/></Array></mxGeometry></mxCell><mxCell id="e11" value="&lt;div style=&quot;text-align: center&quot;&gt;&lt;b&gt;12. Flete conciliado contra SICE-TAC y factura&lt;/b&gt;&lt;/div&gt;" style="endArrow=blockThin;html=1;fontSize=10;fontColor=#404040;strokeWidth=1;endFill=1;strokeColor=#828282;elbow=vertical;metaEdit=1;endSize=14;startSize=14;jumpStyle=arc;jumpSize=16;rounded=0;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="conciliador" target="erp"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell></root></mxGraphModel></diagram></mxfile>
