<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36" version="29.6.1">
  <diagram name="Arquitectura Master-Shard" id="0">
    <mxGraphModel dx="1426" dy="1871" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1920" pageHeight="1080" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="shard" parent="1" style="swimlane;horizontal=0;startSize=30;fillColor=#E3F2FD;strokeColor=#1565C0;fontSize=16;" value="Servidor Shard" vertex="1">
          <mxGeometry height="420" width="420" x="40" y="80" as="geometry" />
        </mxCell>
        <mxCell id="shardCore" parent="shard" style="rounded=1;fillColor=#BBDEFB;fontSize=16;fontStyle=1" value="Core Service&#xa;(Lógica de juego)" vertex="1">
          <mxGeometry height="70" width="320" x="40" y="60" as="geometry" />
        </mxCell>
        <mxCell id="shardPersistence" parent="shard" style="rounded=1;fillColor=#BBDEFB;fontSize=16;fontStyle=1" value="Persistence Service&#xa;(Spring Data / JPA)" vertex="1">
          <mxGeometry height="70" width="320" x="40" y="150" as="geometry" />
        </mxCell>
        <mxCell id="shardDB" parent="shard" style="shape=cylinder;fillColor=#E1F5FE;fontSize=16;fontStyle=1" value="&#xa;Shard DB&#xa;" vertex="1">
          <mxGeometry height="80" width="160" x="120" y="260" as="geometry" />
        </mxCell>
        <mxCell id="AlSRsDaISVzWPFBxWCj3-3" parent="shard" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=0" value="&lt;span&gt;&lt;font style=&quot;font-size: 16px;&quot;&gt;:8021&lt;/font&gt;&lt;/span&gt;" vertex="1">
          <mxGeometry height="30" width="60" x="300" y="170" as="geometry" />
        </mxCell>
        <mxCell id="AlSRsDaISVzWPFBxWCj3-4" parent="shard" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=0" value="&lt;span&gt;&lt;font style=&quot;font-size: 16px;&quot;&gt;:8020&lt;/font&gt;&lt;/span&gt;" vertex="1">
          <mxGeometry height="30" width="60" x="300" y="80" as="geometry" />
        </mxCell>
        <mxCell id="master" parent="1" style="swimlane;horizontal=0;startSize=30;fillColor=#FFF3E0;strokeColor=#EF6C00;fontSize=16;" value="Servidor Master" vertex="1">
          <mxGeometry height="420" width="420" x="640" y="80" as="geometry" />
        </mxCell>
        <mxCell id="masterAPI" parent="master" style="rounded=1;fillColor=#FFE0B2;fontSize=16;fontStyle=1" value="API REST&#xa;(Controladores)" vertex="1">
          <mxGeometry height="60" width="320" x="40" y="60" as="geometry" />
        </mxCell>
        <mxCell id="masterService" parent="master" style="rounded=1;fillColor=#FFE0B2;fontSize=16;fontStyle=1" value="Servicios&#xa;(Agrupación / Estadísticas)" vertex="1">
          <mxGeometry height="60" width="320" x="40" y="140" as="geometry" />
        </mxCell>
        <mxCell id="masterRepo" parent="master" style="rounded=1;fillColor=#FFE0B2;fontSize=16;fontStyle=1" value="Repositorios&#xa;(Spring Data)" vertex="1">
          <mxGeometry height="60" width="320" x="40" y="220" as="geometry" />
        </mxCell>
        <mxCell id="masterDB" parent="master" style="shape=cylinder;fillColor=#FFF8E1;fontSize=16;fontStyle=1" value="&#xa;Master DB&#xa;" vertex="1">
          <mxGeometry height="80" width="160" x="120" y="310" as="geometry" />
        </mxCell>
        <mxCell id="AlSRsDaISVzWPFBxWCj3-5" parent="master" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontStyle=0" value="&lt;span&gt;&lt;font style=&quot;font-size: 16px;&quot;&gt;:8010&lt;/font&gt;&lt;/span&gt;" vertex="1">
          <mxGeometry height="30" width="60" x="350" y="10" as="geometry" />
        </mxCell>
        <mxCell id="gui" parent="1" style="rounded=1;fillColor=#E8F5E9;strokeColor=#2E7D32;fontSize=16;fontStyle=1" value="GUI de Consulta" vertex="1">
          <mxGeometry height="80" width="420" x="630" y="-40" as="geometry" />
        </mxCell>
        <mxCell id="e1" edge="1" parent="1" source="shardCore" style="endArrow=block;" target="shardPersistence">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e2" edge="1" parent="1" source="shardPersistence" style="endArrow=block;" target="shardDB">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e3" edge="1" parent="1" source="shardCore" style="endArrow=block;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontStyle=1;fontSize=13;labelBackgroundColor=none;" target="masterAPI" value="HTTP&#xa;Eventos + Heartbeat">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e4" edge="1" parent="1" source="masterAPI" style="endArrow=block;fontStyle=1" target="masterService">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e5" edge="1" parent="1" source="masterService" style="endArrow=block;fontStyle=1" target="masterRepo">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e6" edge="1" parent="1" source="masterRepo" style="endArrow=block;" target="masterDB">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e7" edge="1" parent="1" source="gui" style="endArrow=block;" target="masterAPI" value="">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="AlSRsDaISVzWPFBxWCj3-2" edge="1" parent="1" source="AlSRsDaISVzWPFBxWCj3-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="shardCore">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="AlSRsDaISVzWPFBxWCj3-1" parent="1" style="rounded=1;fillColor=#E8F5E9;strokeColor=#2E7D32;fontSize=18;fontStyle=1" value="GUI del juego" vertex="1">
          <mxGeometry height="80" width="380" x="50" y="-40" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
