<mxfile host="Electron" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.6.1 Chrome/142.0.7444.265 Electron/39.8.0 Safari/537.36" version="29.6.1">
  <diagram name="Page-1" id="diagram-1">
    <mxGraphModel dx="3348" dy="1143" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="1200" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="title-group" connectable="0" parent="1" style="group;fontFamily=Helvetica;" value="" vertex="1">
          <mxGeometry height="83" width="1510" x="50" y="30" as="geometry" />
        </mxCell>
        <mxCell id="title-text" parent="title-group" style="text;html=1;resizable=1;points=[];autosize=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=30;fontStyle=1;fontFamily=Helvetica;" value="Microservices on ECS Fargate" vertex="1">
          <mxGeometry height="42" width="800" as="geometry" />
        </mxCell>
        <mxCell id="subtitle-text" parent="title-group" style="text;html=1;resizable=0;points=[];autosize=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=16;fontFamily=Helvetica;" value="Containerized microservices with ALB routing, event-driven integrations, and centralized observability" vertex="1">
          <mxGeometry height="25" width="800" x="5" y="40" as="geometry" />
        </mxCell>
        <mxCell id="title-separator" parent="title-group" style="line;strokeWidth=2;html=1;fontSize=14;strokeColor=#FF9900;fontFamily=Helvetica;" value="" vertex="1">
          <mxGeometry height="10" width="1505" x="5" y="70" as="geometry" />
        </mxCell>
        <mxCell id="users-container" parent="1" style="fillColor=#f5f5f5;strokeColor=light-dark(#666666,#D4D4D4);rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#333333;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1;perimeterSpacing=0;" value="Users" vertex="1">
          <mxGeometry height="98" width="107" x="50" y="221" as="geometry" />
        </mxCell>
        <mxCell id="users-icon" parent="users-container" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#232F3D;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.users;fontFamily=Helvetica;" value="" vertex="1">
          <mxGeometry height="48" width="48" x="30" y="30" as="geometry" />
        </mxCell>
        <mxCell id="stripe-container" parent="1" style="fillColor=#f5f5f5;strokeColor=light-dark(#666666,#D4D4D4);rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#333333;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1;perimeterSpacing=0;" value="External API" vertex="1">
          <mxGeometry height="98" width="120" x="1440" y="580" as="geometry" />
        </mxCell>
        <mxCell id="stripe-icon" parent="stripe-container" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#232F3D;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.internet;fontFamily=Helvetica;" value="Stripe" vertex="1">
          <mxGeometry height="48" width="48" x="36" y="30" as="geometry" />
        </mxCell>
        <mxCell id="aws-cloud" parent="1" style="points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_aws_cloud;strokeColor=light-dark(#232F3E,#E0ECFB);fillColor=light-dark(#232F3E0D,#90C7FF0D);fillStyle=auto;verticalAlign=top;align=left;spacingLeft=30;fontColor=light-dark(#000000,#FFFFFF);dashed=0;container=1;pointerEvents=0;collapsible=0;recursiveResize=0;fontFamily=Helvetica;" value="AWS Cloud" vertex="1">
          <mxGeometry height="1060" width="1180" x="220" y="140" as="geometry" />
        </mxCell>
        <mxCell id="svc-group-r53" parent="aws-cloud" style="fillColor=#EDE7F6;strokeColor=#8C4FFF;rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#8C4FFF;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1.5;" value="DNS" vertex="1">
          <mxGeometry height="120" width="120" x="60" y="70" as="geometry" />
        </mxCell>
        <mxCell id="svc-r53" parent="svc-group-r53" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#8C4FFF;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.route_53;fontFamily=Helvetica;shadow=1;" value="Amazon Route 53&lt;div&gt;&lt;i&gt;DNS resolution&lt;/i&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="48" width="48" x="36" y="30" as="geometry" />
        </mxCell>
        <mxCell id="svc-group-cf" parent="aws-cloud" style="fillColor=#EDE7F6;strokeColor=#8C4FFF;rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#8C4FFF;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1.5;" value="CDN" vertex="1">
          <mxGeometry height="120" width="120" x="340" y="70" as="geometry" />
        </mxCell>
        <mxCell id="svc-cf" parent="svc-group-cf" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#8C4FFF;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.cloudfront;fontFamily=Helvetica;shadow=1;" value="Amazon CloudFront&lt;div&gt;&lt;i&gt;edge caching&lt;/i&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="48" width="48" x="36" y="30" as="geometry" />
        </mxCell>
        <mxCell id="svc-group-alb" parent="aws-cloud" style="fillColor=#EDE7F6;strokeColor=#8C4FFF;rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#8C4FFF;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1.5;" value="Load Balancer" vertex="1">
          <mxGeometry height="120" width="120" x="340" y="290" as="geometry" />
        </mxCell>
        <mxCell id="svc-alb" parent="svc-group-alb" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#8C4FFF;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.elastic_load_balancing;fontFamily=Helvetica;shadow=1;" value="Application LB&lt;div&gt;&lt;i&gt;path routing&lt;/i&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="48" width="48" x="36" y="30" as="geometry" />
        </mxCell>
        <mxCell id="svc-group-fargate-orders" parent="aws-cloud" style="fillColor=#FFF2E8;strokeColor=#ED7100;rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#ED7100;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1.5;" value="Orders Service" vertex="1">
          <mxGeometry height="120" width="120" x="80" y="510" as="geometry" />
        </mxCell>
        <mxCell id="svc-fargate-orders" parent="svc-group-fargate-orders" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#ED7100;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.fargate;fontFamily=Helvetica;shadow=1;" value="AWS Fargate&lt;div&gt;&lt;i&gt;orders&lt;/i&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="48" width="48" x="36" y="30" as="geometry" />
        </mxCell>
        <mxCell id="svc-group-fargate-payments" parent="aws-cloud" style="fillColor=#FFF2E8;strokeColor=#ED7100;rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#ED7100;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1.5;" value="Payments Service" vertex="1">
          <mxGeometry height="120" width="130" x="340" y="510" as="geometry" />
        </mxCell>
        <mxCell id="svc-fargate-payments" parent="svc-group-fargate-payments" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#ED7100;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.fargate;fontFamily=Helvetica;shadow=1;" value="AWS Fargate&lt;div&gt;&lt;i&gt;payments&lt;/i&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="48" width="48" x="41" y="30" as="geometry" />
        </mxCell>
        <mxCell id="svc-group-fargate-inventory" parent="aws-cloud" style="fillColor=#FFF2E8;strokeColor=#ED7100;rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#ED7100;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1.5;" value="Inventory Service" vertex="1">
          <mxGeometry height="120" width="130" x="610" y="510" as="geometry" />
        </mxCell>
        <mxCell id="svc-fargate-inventory" parent="svc-group-fargate-inventory" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#ED7100;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.fargate;fontFamily=Helvetica;shadow=1;" value="AWS Fargate&lt;div&gt;&lt;i&gt;inventory&lt;/i&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="48" width="48" x="41" y="30" as="geometry" />
        </mxCell>
        <mxCell id="svc-group-dynamodb" parent="aws-cloud" style="fillColor=#F5E6F7;strokeColor=#C925D1;rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#C925D1;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1.5;" value="Database" vertex="1">
          <mxGeometry height="120" width="120" x="80" y="730" as="geometry" />
        </mxCell>
        <mxCell id="svc-dynamodb" parent="svc-group-dynamodb" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#C925D1;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.dynamodb;fontFamily=Helvetica;shadow=1;" value="Amazon DynamoDB&lt;div&gt;&lt;i&gt;orders &amp;amp; inventory&lt;/i&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="48" width="48" x="36" y="30" as="geometry" />
        </mxCell>
        <mxCell id="svc-group-sns" parent="aws-cloud" style="fillColor=#FCE4EC;strokeColor=#E7157B;rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#E7157B;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1.5;" value="Notifications" vertex="1">
          <mxGeometry height="120" width="120" x="82" y="897" as="geometry" />
        </mxCell>
        <mxCell id="svc-sns" parent="svc-group-sns" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#E7157B;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.sns;fontFamily=Helvetica;shadow=1;" value="Amazon SNS&lt;div&gt;&lt;i&gt;order events&lt;/i&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="48" width="48" x="36" y="30" as="geometry" />
        </mxCell>
        <mxCell id="svc-group-rds" parent="aws-cloud" style="fillColor=#F5E6F7;strokeColor=#C925D1;rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#C925D1;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1.5;" value="Database" vertex="1">
          <mxGeometry height="120" width="120" x="345" y="730" as="geometry" />
        </mxCell>
        <mxCell id="svc-rds" parent="svc-group-rds" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#C925D1;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.rds;fontFamily=Helvetica;shadow=1;" value="Amazon RDS&lt;div&gt;&lt;i&gt;payments data&lt;/i&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="48" width="48" x="36" y="30" as="geometry" />
        </mxCell>
        <mxCell id="svc-group-eventbridge" parent="aws-cloud" style="fillColor=#FCE4EC;strokeColor=#E7157B;rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#E7157B;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1.5;" value="Event Bus" vertex="1">
          <mxGeometry height="120" width="120" x="615" y="730" as="geometry" />
        </mxCell>
        <mxCell id="svc-eventbridge" parent="svc-group-eventbridge" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#E7157B;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.eventbridge;fontFamily=Helvetica;shadow=1;" value="Amazon EventBridge&lt;div&gt;&lt;i&gt;stock events&lt;/i&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="48" width="48" x="36" y="30" as="geometry" />
        </mxCell>
        <mxCell id="svc-group-lambda" parent="aws-cloud" style="fillColor=#FFF2E8;strokeColor=#ED7100;rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#ED7100;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1.5;" value="Compute" vertex="1">
          <mxGeometry height="120" width="120" x="880" y="730" as="geometry" />
        </mxCell>
        <mxCell id="svc-lambda" parent="svc-group-lambda" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#ED7100;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.lambda;fontFamily=Helvetica;shadow=1;" value="AWS Lambda&lt;div&gt;&lt;i&gt;reorder automation&lt;/i&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="48" width="48" x="36" y="30" as="geometry" />
        </mxCell>
        <mxCell id="aux-group" parent="aws-cloud" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;fillColor=none;dashed=1;fontFamily=Helvetica;fontSize=12;fontStyle=1;" value="Auxiliary Services" vertex="1">
          <mxGeometry height="230" width="300" x="822" y="54" as="geometry" />
        </mxCell>
        <mxCell id="svc-group-cloudwatch" parent="aws-cloud" style="fillColor=#FCE4EC;strokeColor=#E7157B;rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#E7157B;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1.5;" value="Monitoring" vertex="1">
          <mxGeometry height="120" width="120" x="837" y="109" as="geometry" />
        </mxCell>
        <mxCell id="svc-cloudwatch" parent="svc-group-cloudwatch" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#E7157B;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.cloudwatch;fontFamily=Helvetica;shadow=1;" value="Amazon CloudWatch&lt;div&gt;&lt;i&gt;metrics &amp;amp; logs&lt;/i&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="48" width="48" x="36" y="30" as="geometry" />
        </mxCell>
        <mxCell id="svc-group-xray" parent="aws-cloud" style="fillColor=#EDE7F6;strokeColor=#8C4FFF;rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#8C4FFF;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1.5;" value="Tracing" vertex="1">
          <mxGeometry height="120" width="120" x="987" y="109" as="geometry" />
        </mxCell>
        <mxCell id="svc-xray" parent="svc-group-xray" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;fillColor=#8C4FFF;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=10;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.xray;fontFamily=Helvetica;shadow=1;" value="AWS X-Ray&lt;div&gt;&lt;i&gt;distributed tracing&lt;/i&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="48" width="48" x="36" y="30" as="geometry" />
        </mxCell>
        <mxCell id="region-1" parent="1" style="points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=14;fontStyle=1;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_region;strokeColor=#00A4A6;fillColor=light-dark(#0C7B7D0D,#0C7B7D0D);fillStyle=auto;verticalAlign=top;align=left;spacingLeft=30;fontColor=#00A4A6;dashed=1;container=0;pointerEvents=0;collapsible=0;recursiveResize=0;fontFamily=Helvetica;" value="Region: us-east-1" vertex="1">
          <mxGeometry height="1000" width="1120" x="250" y="170" as="geometry" />
        </mxCell>
        <mxCell id="edge-users-to-r53" edge="1" parent="1" source="users-container" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="svc-group-r53">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="edge-users-to-r53-label" connectable="0" parent="edge-users-to-r53" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;" value="DNS query" vertex="1">
          <mxGeometry relative="1" x="-0.2" y="-15" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-r53-to-cf" edge="1" parent="1" source="svc-group-r53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="svc-group-cf">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="edge-r53-to-cf-label" connectable="0" parent="edge-r53-to-cf" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;" value="resolve" vertex="1">
          <mxGeometry relative="1" x="-0.2" y="-15" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-cf-to-alb" edge="1" parent="1" source="svc-group-cf" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="svc-group-alb">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="edge-cf-to-alb-label" connectable="0" parent="edge-cf-to-alb" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;" value="forward origin" vertex="1">
          <mxGeometry relative="1" x="-0.2" y="15" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-alb-to-orders" edge="1" parent="1" source="svc-group-alb" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="svc-group-fargate-orders">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="560" y="500" />
              <mxPoint x="360" y="500" />
              <mxPoint x="360" y="620" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-alb-to-orders-label" connectable="0" parent="edge-alb-to-orders" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;fontStyle=2;" value="/orders" vertex="1">
          <mxGeometry relative="1" x="-0.4" y="-15" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-alb-to-payments" edge="1" parent="1" source="svc-group-alb" 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="svc-group-fargate-payments">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="edge-alb-to-payments-label" connectable="0" parent="edge-alb-to-payments" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;fontStyle=2;" value="/payments" vertex="1">
          <mxGeometry relative="1" x="-0.2" y="15" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-alb-to-inventory" edge="1" parent="1" source="svc-group-alb" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="svc-group-fargate-inventory">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="680" y="500" />
              <mxPoint x="895" y="500" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-alb-to-inventory-label" connectable="0" parent="edge-alb-to-inventory" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;fontStyle=2;" value="/inventory" vertex="1">
          <mxGeometry relative="1" x="-0.4" y="-15" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-orders-to-dynamo" edge="1" parent="1" source="svc-group-fargate-orders" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="svc-group-dynamodb">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="edge-orders-to-dynamo-label" connectable="0" parent="edge-orders-to-dynamo" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;" value="write orders" vertex="1">
          <mxGeometry relative="1" x="-0.2" y="15" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-orders-to-sns" edge="1" parent="1" source="svc-group-fargate-orders" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="svc-group-sns">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="270" y="740" />
              <mxPoint x="270" y="1097" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-orders-to-sns-label" connectable="0" parent="edge-orders-to-sns" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;" value="publish events" vertex="1">
          <mxGeometry relative="1" x="0.3" y="-15" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-payments-to-stripe" edge="1" parent="1" source="svc-group-fargate-payments" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="stripe-container">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="791" y="680" />
              <mxPoint x="791" y="629" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-payments-to-stripe-label" connectable="0" parent="edge-payments-to-stripe" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;" value="charge API" vertex="1">
          <mxGeometry relative="1" x="0.2" y="-15" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-payments-to-rds" edge="1" parent="1" source="svc-group-fargate-payments" 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="svc-group-rds">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="edge-payments-to-rds-label" connectable="0" parent="edge-payments-to-rds" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;" value="write payments" vertex="1">
          <mxGeometry relative="1" x="-0.2" y="15" as="geometry">
            <mxPoint x="1" y="24" as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-inventory-to-dynamo" edge="1" parent="1" source="svc-group-fargate-inventory" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" target="svc-group-dynamodb">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="811" y="740" />
              <mxPoint x="811" y="806" />
              <mxPoint x="540" y="806" />
              <mxPoint x="540" y="930" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-inventory-to-dynamo-label" connectable="0" parent="edge-inventory-to-dynamo" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;" value="read/write stock" vertex="1">
          <mxGeometry relative="1" x="-0.3" y="-15" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-inventory-to-eb" edge="1" parent="1" source="svc-group-fargate-inventory" 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="svc-group-eventbridge">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="edge-inventory-to-eb-label" connectable="0" parent="edge-inventory-to-eb" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;" value="stock updates" vertex="1">
          <mxGeometry relative="1" x="-0.2" y="15" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="edge-eb-to-lambda" edge="1" parent="1" source="svc-group-eventbridge" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="svc-group-lambda">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="edge-eb-to-lambda-label" connectable="0" parent="edge-eb-to-lambda" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;" value="trigger reorder" vertex="1">
          <mxGeometry relative="1" x="-0.2" y="-15" as="geometry">
            <mxPoint as="offset" />
          </mxGeometry>
        </mxCell>
        <mxCell id="step-1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=16;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;align=center;verticalAlign=middle;labelBackgroundColor=none;" value="1" vertex="1">
          <mxGeometry height="28" width="28" x="190" y="200" as="geometry" />
        </mxCell>
        <mxCell id="step-2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=16;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;align=center;verticalAlign=middle;labelBackgroundColor=none;" value="2" vertex="1">
          <mxGeometry height="28" width="28" x="410" y="195" as="geometry" />
        </mxCell>
        <mxCell id="step-3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=16;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;align=center;verticalAlign=middle;labelBackgroundColor=none;" value="3" vertex="1">
          <mxGeometry height="28" width="28" x="563" y="356" as="geometry" />
        </mxCell>
        <mxCell id="step-4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=16;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;align=center;verticalAlign=middle;labelBackgroundColor=none;" value="4" vertex="1">
          <mxGeometry height="28" width="28" x="538" y="560" as="geometry" />
        </mxCell>
        <mxCell id="step-5" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=16;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;align=center;verticalAlign=middle;labelBackgroundColor=none;" value="5" vertex="1">
          <mxGeometry height="28" width="28" x="288" y="810" as="geometry" />
        </mxCell>
        <mxCell id="step-6" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=16;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;align=center;verticalAlign=middle;labelBackgroundColor=none;" value="6" vertex="1">
          <mxGeometry height="28" width="28" x="498" y="730" as="geometry" />
        </mxCell>
        <mxCell id="step-7" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=16;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;align=center;verticalAlign=middle;labelBackgroundColor=none;" value="7" vertex="1">
          <mxGeometry height="28" width="28" x="778" y="720" as="geometry" />
        </mxCell>
        <mxCell id="step-8" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=16;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;align=center;verticalAlign=middle;labelBackgroundColor=none;" value="8" vertex="1">
          <mxGeometry height="28" width="28" x="988" y="855" as="geometry" />
        </mxCell>
        <mxCell id="legend-outer" connectable="0" parent="1" style="group" value="" vertex="1">
          <mxGeometry height="1170" width="650" x="1569" y="28" as="geometry" />
        </mxCell>
        <mxCell id="legend-bg" parent="legend-outer" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.basic.rect;fillColor2=none;strokeWidth=1;size=20;indent=5;fillColor=light-dark(#EDF3FF,#305363);strokeColor=#6c8ebf;" value="" vertex="1">
          <mxGeometry height="1170" width="650" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-1-group" connectable="0" parent="legend-outer" style="group;fontFamily=Helvetica;" value="" vertex="1">
          <mxGeometry height="80" width="600" x="20" y="20" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-1-badge" parent="legend-step-1-group" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=22;labelBackgroundColor=none;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;" value="1" vertex="1">
          <mxGeometry height="38" width="40" y="2" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-1-desc" parent="legend-step-1-group" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" value="&lt;div&gt;&lt;b&gt;DNS Resolution&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;Users hit Route 53 for domain resolution&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;Route 53 resolves to CloudFront distribution&lt;/span&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="80" width="548" x="52" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-2-group" connectable="0" parent="legend-outer" style="group;fontFamily=Helvetica;" value="" vertex="1">
          <mxGeometry height="80" width="600" x="20" y="110" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-2-badge" parent="legend-step-2-group" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=22;labelBackgroundColor=none;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;" value="2" vertex="1">
          <mxGeometry height="38" width="40" y="2" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-2-desc" parent="legend-step-2-group" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" value="&lt;div&gt;&lt;b&gt;CDN Edge Delivery&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;CloudFront caches static content at edge locations&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;Dynamic requests forwarded to ALB origin&lt;/span&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="80" width="548" x="52" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-3-group" connectable="0" parent="legend-outer" style="group;fontFamily=Helvetica;" value="" vertex="1">
          <mxGeometry height="80" width="600" x="20" y="200" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-3-badge" parent="legend-step-3-group" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=22;labelBackgroundColor=none;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;" value="3" vertex="1">
          <mxGeometry height="38" width="40" y="2" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-3-desc" parent="legend-step-3-group" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" value="&lt;div&gt;&lt;b&gt;Load Balancing&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;ALB routes traffic by path to Fargate services&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;/orders, /payments, /inventory path-based routing&lt;/span&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="80" width="548" x="52" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-4-group" connectable="0" parent="legend-outer" style="group;fontFamily=Helvetica;" value="" vertex="1">
          <mxGeometry height="80" width="600" x="20" y="290" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-4-badge" parent="legend-step-4-group" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=22;labelBackgroundColor=none;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;" value="4" vertex="1">
          <mxGeometry height="38" width="40" y="2" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-4-desc" parent="legend-step-4-group" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" value="&lt;div&gt;&lt;b&gt;Fargate Processing&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;Three microservices handle orders, payments, and inventory&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;Each service independently scales on ECS Fargate&lt;/span&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="80" width="548" x="52" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-5-group" connectable="0" parent="legend-outer" style="group;fontFamily=Helvetica;" value="" vertex="1">
          <mxGeometry height="80" width="600" x="20" y="380" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-5-badge" parent="legend-step-5-group" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=22;labelBackgroundColor=none;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;" value="5" vertex="1">
          <mxGeometry height="38" width="40" y="2" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-5-desc" parent="legend-step-5-group" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" value="&lt;div&gt;&lt;b&gt;Orders Data Flow&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;Orders service writes to DynamoDB&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;Publishes order events to SNS topic&lt;/span&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="80" width="548" x="52" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-6-group" connectable="0" parent="legend-outer" style="group;fontFamily=Helvetica;" value="" vertex="1">
          <mxGeometry height="80" width="600" x="20" y="470" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-6-badge" parent="legend-step-6-group" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=22;labelBackgroundColor=none;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;" value="6" vertex="1">
          <mxGeometry height="38" width="40" y="2" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-6-desc" parent="legend-step-6-group" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" value="&lt;div&gt;&lt;b&gt;Payment Processing&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;Payments service calls external Stripe API&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;Writes payment records to RDS&lt;/span&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="80" width="548" x="52" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-7-group" connectable="0" parent="legend-outer" style="group;fontFamily=Helvetica;" value="" vertex="1">
          <mxGeometry height="80" width="600" x="20" y="560" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-7-badge" parent="legend-step-7-group" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=22;labelBackgroundColor=none;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;" value="7" vertex="1">
          <mxGeometry height="38" width="40" y="2" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-7-desc" parent="legend-step-7-group" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" value="&lt;div&gt;&lt;b&gt;Inventory Management&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;Inventory service reads/writes DynamoDB stock data&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;Publishes stock updates to EventBridge&lt;/span&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="80" width="548" x="52" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-8-group" connectable="0" parent="legend-outer" style="group;fontFamily=Helvetica;" value="" vertex="1">
          <mxGeometry height="80" width="600" x="20" y="650" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-8-badge" parent="legend-step-8-group" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#007CBD;strokeColor=default;fontColor=#FFFFFF;fontStyle=1;fontSize=22;labelBackgroundColor=none;fontFamily=Helvetica;shadow=1;glass=0;strokeWidth=2;" value="8" vertex="1">
          <mxGeometry height="38" width="40" y="2" as="geometry" />
        </mxCell>
        <mxCell id="legend-step-8-desc" parent="legend-step-8-group" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" value="&lt;div&gt;&lt;b&gt;Reorder Automation&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;EventBridge triggers Lambda on low-stock events&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: light-dark(rgb(0,0,0), rgb(255,255,255));&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;-&lt;/font&gt; &lt;/b&gt;Lambda automates reorder workflows&lt;/span&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="80" width="548" x="52" as="geometry" />
        </mxCell>
        <mxCell id="legend-aux-note" parent="legend-outer" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=13;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;fontStyle=2;" value="&lt;i&gt;CloudWatch and X-Ray monitor all services (shown in Auxiliary Services group, no dedicated edges)&lt;/i&gt;" vertex="1">
          <mxGeometry height="40" width="600" x="20" y="750" as="geometry" />
        </mxCell>
        <mxCell id="legend-line-group" connectable="0" parent="legend-outer" style="group;fontFamily=Helvetica;" value="" vertex="1">
          <mxGeometry height="133" width="600" x="20" y="800" as="geometry" />
        </mxCell>
        <mxCell id="legend-line-bg" parent="legend-line-group" style="fillColor=light-dark(#F5F5F5,#29393B);strokeColor=#666666;rounded=1;whiteSpace=wrap;html=1;fontFamily=Helvetica;" value="" vertex="1">
          <mxGeometry height="133" width="600" as="geometry" />
        </mxCell>
        <mxCell id="legend-line-title" parent="legend-line-group" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;fontStyle=1;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" value="Line Styles" vertex="1">
          <mxGeometry height="26" width="152" x="10" y="6" as="geometry" />
        </mxCell>
        <mxCell id="legend-line-desc" parent="legend-line-group" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=13;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" value="&lt;div&gt;&lt;b&gt;----  Solid&lt;/b&gt;: Request/response and data flow&lt;/div&gt;&lt;div&gt;&lt;b&gt;----  Solid italic&lt;/b&gt;: Path-based routing rules (/orders, /payments, /inventory)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Dashed boundary = Auxiliary monitoring services&lt;/i&gt;&lt;/div&gt;" vertex="1">
          <mxGeometry height="100" width="560" x="10" y="30" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
