<mxfile host="Electron" version="29.6.1">
  <diagram name="FinTech PCI ledger fraud" id="diagram-1">
    <mxGraphModel dx="1400" dy="900" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="2000" pageHeight="780" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="title-group" value="" style="group;fontFamily=Helvetica;" vertex="1" parent="1" connectable="0">
          <mxGeometry x="50" y="30" width="1200" height="83" as="geometry" />
        </mxCell>
        <mxCell id="title-text" value="FinTech payments on AWS (2026)" style="text;html=1;resizable=1;points=[];autosize=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=30;fontStyle=1;fontFamily=Helvetica;" vertex="1" parent="title-group">
          <mxGeometry x="0" y="0" width="800" height="42" as="geometry" />
        </mxCell>
        <mxCell id="subtitle-text" value="PCI-scoped account, Payment Cryptography, Aurora ledger, EventBridge fraud pipe" style="text;html=1;resizable=0;points=[];autosize=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=16;fontFamily=Helvetica;" vertex="1" parent="title-group">
          <mxGeometry x="5" y="40" width="800" height="25" as="geometry" />
        </mxCell>
        <mxCell id="title-separator" value="" style="line;strokeWidth=2;html=1;fontSize=14;strokeColor=#FF9900;fontFamily=Helvetica;" vertex="1" parent="title-group">
          <mxGeometry x="5" y="70" width="1190" height="10" as="geometry" />
        </mxCell>
        <mxCell id="users-container" value="Issuers / merchants" 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;" vertex="1" parent="1">
          <mxGeometry x="50" y="200" width="107" height="98" as="geometry" />
        </mxCell>
        <mxCell id="users-icon" value="" 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;" vertex="1" parent="users-container">
          <mxGeometry x="30" y="30" width="48" height="48" as="geometry" />
        </mxCell>
        <mxCell id="aws-cloud" value="AWS Cloud" 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=#232F3E;fillColor=light-dark(#232F3E0D,#232F3E0D);fillStyle=auto;verticalAlign=top;align=left;spacingLeft=30;fontColor=#232F3E;dashed=0;container=1;pointerEvents=0;collapsible=0;recursiveResize=0;fontFamily=Helvetica;" vertex="1" parent="1">
          <mxGeometry x="180" y="140" width="1080" height="520" as="geometry" />
        </mxCell>
        <mxCell id="grp-api-gw" value="Edge" 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;" vertex="1" parent="aws-cloud">
          <mxGeometry x="40" y="70" width="120" height="120" as="geometry" />
        </mxCell>
        <mxCell id="api-gw" value="API Gateway&lt;div&gt;&lt;i&gt;authorize entry&lt;/i&gt;&lt;/div&gt;" 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.api_gateway;fontFamily=Helvetica;shadow=1;" vertex="1" parent="grp-api-gw">
          <mxGeometry x="36" y="30" width="48" height="48" as="geometry" />
        </mxCell>
        <mxCell id="grp-paycrypto" value="Crypto" style="fillColor=#FFEBEE;strokeColor=#DD344C;rounded=1;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1;fontSize=12;fontColor=#DD344C;fontFamily=Helvetica;container=1;collapsible=0;shadow=1;strokeWidth=1.5;" vertex="1" parent="aws-cloud">
          <mxGeometry x="250" y="70" width="120" height="120" as="geometry" />
        </mxCell>
        <mxCell id="paycrypto" value="Payment Cryptography&lt;div&gt;&lt;i&gt;P2PE / PIN / CB&lt;/i&gt;&lt;/div&gt;" 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=#DD344C;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.payment_cryptography;fontFamily=Helvetica;shadow=1;" vertex="1" parent="grp-paycrypto">
          <mxGeometry x="36" y="30" width="48" height="48" as="geometry" />
        </mxCell>
        <mxCell id="grp-sfn" value="Orchestration" 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;" vertex="1" parent="aws-cloud">
          <mxGeometry x="460" y="70" width="120" height="120" as="geometry" />
        </mxCell>
        <mxCell id="sfn" value="Step Functions&lt;div&gt;&lt;i&gt;auth workflow&lt;/i&gt;&lt;/div&gt;" 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.step_functions;fontFamily=Helvetica;shadow=1;" vertex="1" parent="grp-sfn">
          <mxGeometry x="36" y="30" width="48" height="48" as="geometry" />
        </mxCell>
        <mxCell id="grp-aurora" value="Ledger" 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;" vertex="1" parent="aws-cloud">
          <mxGeometry x="670" y="70" width="120" height="120" as="geometry" />
        </mxCell>
        <mxCell id="aurora" value="Aurora PostgreSQL&lt;div&gt;&lt;i&gt;pgaudit append-only&lt;/i&gt;&lt;/div&gt;" 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.aurora;fontFamily=Helvetica;shadow=1;" vertex="1" parent="grp-aurora">
          <mxGeometry x="36" y="30" width="48" height="48" as="geometry" />
        </mxCell>
        <mxCell id="grp-eventbridge" value="Events" 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;" vertex="1" parent="aws-cloud">
          <mxGeometry x="250" y="280" width="120" height="120" as="geometry" />
        </mxCell>
        <mxCell id="eventbridge" value="EventBridge&lt;div&gt;&lt;i&gt;auth events&lt;/i&gt;&lt;/div&gt;" 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;" vertex="1" parent="grp-eventbridge">
          <mxGeometry x="36" y="30" width="48" height="48" as="geometry" />
        </mxCell>
        <mxCell id="grp-fraud-lambda" value="Scoring" 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;" vertex="1" parent="aws-cloud">
          <mxGeometry x="460" y="280" width="120" height="120" as="geometry" />
        </mxCell>
        <mxCell id="fraud-lambda" value="Lambda&lt;div&gt;&lt;i&gt;fraud features&lt;/i&gt;&lt;/div&gt;" 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;" vertex="1" parent="grp-fraud-lambda">
          <mxGeometry x="36" y="30" width="48" height="48" as="geometry" />
        </mxCell>
        <mxCell id="grp-dynamo" value="Decisions" 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;" vertex="1" parent="aws-cloud">
          <mxGeometry x="670" y="280" width="120" height="120" as="geometry" />
        </mxCell>
        <mxCell id="dynamo" value="DynamoDB&lt;div&gt;&lt;i&gt;idempotent writes&lt;/i&gt;&lt;/div&gt;" 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;" vertex="1" parent="grp-dynamo">
          <mxGeometry x="36" y="30" width="48" height="48" as="geometry" />
        </mxCell>
        <mxCell id="aws-cloud-note" value="PCI Payments OU  ·  QLDB discontinued 31 Jul 2025" style="text;html=1;align=left;fontSize=11;fontFamily=Helvetica;fontColor=#232F3E;" vertex="1" parent="aws-cloud">
          <mxGeometry x="40" y="470" width="500" height="24" as="geometry" />
        </mxCell>
        <mxCell id="e1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#545B64;fontFamily=Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="users-container" target="api-gw">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e1-label" value="HTTPS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;labelBackgroundColor=none;connectable=0;" vertex="1" parent="e1">
          <mxGeometry relative="1" x="-0.2" y="0" as="geometry"><mxPoint as="offset" /></mxGeometry>
        </mxCell>
        <mxCell id="e2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#545B64;fontFamily=Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="api-gw" target="paycrypto">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e2-label" value="decrypt / PIN" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;labelBackgroundColor=none;connectable=0;" vertex="1" parent="e2">
          <mxGeometry relative="1" x="-0.2" y="0" as="geometry"><mxPoint as="offset" /></mxGeometry>
        </mxCell>
        <mxCell id="e3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#545B64;fontFamily=Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="paycrypto" target="sfn">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e3-label" value="authorize" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;labelBackgroundColor=none;connectable=0;" vertex="1" parent="e3">
          <mxGeometry relative="1" x="-0.2" y="0" as="geometry"><mxPoint as="offset" /></mxGeometry>
        </mxCell>
        <mxCell id="e4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#545B64;fontFamily=Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="sfn" target="aurora">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e4-label" value="ledger write" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;labelBackgroundColor=none;connectable=0;" vertex="1" parent="e4">
          <mxGeometry relative="1" x="-0.2" y="0" as="geometry"><mxPoint as="offset" /></mxGeometry>
        </mxCell>
        <mxCell id="e5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#545B64;fontFamily=Helvetica;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="sfn" target="eventbridge">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e5-label" value="auth event" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;labelBackgroundColor=none;connectable=0;" vertex="1" parent="e5">
          <mxGeometry relative="1" x="-0.2" y="0" as="geometry"><mxPoint as="offset" /></mxGeometry>
        </mxCell>
        <mxCell id="e6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#545B64;fontFamily=Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="eventbridge" target="fraud-lambda">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e6-label" value="Pipe" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;labelBackgroundColor=none;connectable=0;" vertex="1" parent="e6">
          <mxGeometry relative="1" x="-0.2" y="0" as="geometry"><mxPoint as="offset" /></mxGeometry>
        </mxCell>
        <mxCell id="e7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#545B64;fontFamily=Helvetica;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="fraud-lambda" target="dynamo">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="e7-label" value="allow | review" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=11;fontFamily=Helvetica;labelBackgroundColor=none;connectable=0;" vertex="1" parent="e7">
          <mxGeometry relative="1" x="-0.2" y="0" as="geometry"><mxPoint as="offset" /></mxGeometry>
        </mxCell>
        <mxCell id="step-1" value="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;" vertex="1" parent="1">
          <mxGeometry x="300.0" y="145.0" width="28" height="28" as="geometry" />
        </mxCell>
        <mxCell id="step-2" value="2" 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;" vertex="1" parent="1">
          <mxGeometry x="510.0" y="145.0" width="28" height="28" as="geometry" />
        </mxCell>
        <mxCell id="step-3" value="3" 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;" vertex="1" parent="1">
          <mxGeometry x="720.0" y="145.0" width="28" height="28" as="geometry" />
        </mxCell>
        <mxCell id="step-4" value="4" 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;" vertex="1" parent="1">
          <mxGeometry x="930.0" y="135.0" width="28" height="28" as="geometry" />
        </mxCell>
        <mxCell id="step-5" value="5" 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;" vertex="1" parent="1">
          <mxGeometry x="510.0" y="365.0" width="28" height="28" as="geometry" />
        </mxCell>
        <mxCell id="step-6" value="6" 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;" vertex="1" parent="1">
          <mxGeometry x="720.0" y="365.0" width="28" height="28" as="geometry" />
        </mxCell>
        <mxCell id="step-7" value="7" 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;" vertex="1" parent="1">
          <mxGeometry x="930.0" y="365.0" width="28" height="28" as="geometry" />
        </mxCell>
        <mxCell id="legend-bg" value="" 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;" vertex="1" parent="1">
          <mxGeometry x="1300" y="30" width="650" height="680" as="geometry" />
        </mxCell>
        <mxCell id="legend-container" value="" style="group;fontFamily=Helvetica;" vertex="1" parent="1" connectable="0">
          <mxGeometry x="1320" y="50" width="602" height="640" as="geometry" />
        </mxCell>
        <mxCell id="legend-title" value="Architecture steps" style="text;html=1;align=left;verticalAlign=top;fontSize=18;fontStyle=1;fontFamily=Helvetica;" vertex="1" parent="legend-container">
          <mxGeometry x="0" y="0" width="548" height="28" as="geometry" />
        </mxCell>
        <mxCell id="step-1-legend" value="" style="group;fontFamily=Helvetica;" vertex="1" parent="legend-container" connectable="0">
          <mxGeometry x="0" y="40" width="600" height="80" as="geometry" />
        </mxCell>
        <mxCell id="step-1-badge-legend" value="1" 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;" vertex="1" parent="step-1-legend">
          <mxGeometry x="0" y="2" width="40" height="38" as="geometry" />
        </mxCell>
        <mxCell id="step-1-desc-legend" value="&lt;div&gt;&lt;b&gt;Terminate at API Gateway&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;Card or token traffic enters a PCI-scoped account. Prefer processor tokens when PAN never touches the VPC.&lt;/span&gt;&lt;/div&gt;" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" vertex="1" parent="step-1-legend">
          <mxGeometry x="52" y="0" width="548" height="80" as="geometry" />
        </mxCell>
        <mxCell id="step-2-legend" value="" style="group;fontFamily=Helvetica;" vertex="1" parent="legend-container" connectable="0">
          <mxGeometry x="0" y="128" width="600" height="80" as="geometry" />
        </mxCell>
        <mxCell id="step-2-badge-legend" value="2" 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;" vertex="1" parent="step-2-legend">
          <mxGeometry x="0" y="2" width="40" height="38" as="geometry" />
        </mxCell>
        <mxCell id="step-2-desc-legend" value="&lt;div&gt;&lt;b&gt;Payment Cryptography&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;P2PE decrypt, PIN translate, and Cartes Bancaires-approved keys replace colo HSMs.&lt;/span&gt;&lt;/div&gt;" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" vertex="1" parent="step-2-legend">
          <mxGeometry x="52" y="0" width="548" height="80" as="geometry" />
        </mxCell>
        <mxCell id="step-3-legend" value="" style="group;fontFamily=Helvetica;" vertex="1" parent="legend-container" connectable="0">
          <mxGeometry x="0" y="216" width="600" height="80" as="geometry" />
        </mxCell>
        <mxCell id="step-3-badge-legend" value="3" 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;" vertex="1" parent="step-3-legend">
          <mxGeometry x="0" y="2" width="40" height="38" as="geometry" />
        </mxCell>
        <mxCell id="step-3-desc-legend" value="&lt;div&gt;&lt;b&gt;Authorize workflow&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;Step Functions retries and compensation stay out of the hot path of the ledger write.&lt;/span&gt;&lt;/div&gt;" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" vertex="1" parent="step-3-legend">
          <mxGeometry x="52" y="0" width="548" height="80" as="geometry" />
        </mxCell>
        <mxCell id="step-4-legend" value="" style="group;fontFamily=Helvetica;" vertex="1" parent="legend-container" connectable="0">
          <mxGeometry x="0" y="304" width="600" height="80" as="geometry" />
        </mxCell>
        <mxCell id="step-4-badge-legend" value="4" 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;" vertex="1" parent="step-4-legend">
          <mxGeometry x="0" y="2" width="40" height="38" as="geometry" />
        </mxCell>
        <mxCell id="step-4-desc-legend" value="&lt;div&gt;&lt;b&gt;Aurora ledger&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;Append-only PostgreSQL plus pgaudit. Do not start new ledgers on discontinued QLDB.&lt;/span&gt;&lt;/div&gt;" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" vertex="1" parent="step-4-legend">
          <mxGeometry x="52" y="0" width="548" height="80" as="geometry" />
        </mxCell>
        <mxCell id="step-5-legend" value="" style="group;fontFamily=Helvetica;" vertex="1" parent="legend-container" connectable="0">
          <mxGeometry x="0" y="392" width="600" height="80" as="geometry" />
        </mxCell>
        <mxCell id="step-5-badge-legend" value="5" 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;" vertex="1" parent="step-5-legend">
          <mxGeometry x="0" y="2" width="40" height="38" as="geometry" />
        </mxCell>
        <mxCell id="step-5-desc-legend" value="&lt;div&gt;&lt;b&gt;Emit auth event&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;EventBridge carries authorization outcomes to fraud without expanding PCI scope.&lt;/span&gt;&lt;/div&gt;" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" vertex="1" parent="step-5-legend">
          <mxGeometry x="52" y="0" width="548" height="80" as="geometry" />
        </mxCell>
        <mxCell id="step-6-legend" value="" style="group;fontFamily=Helvetica;" vertex="1" parent="legend-container" connectable="0">
          <mxGeometry x="0" y="480" width="600" height="80" as="geometry" />
        </mxCell>
        <mxCell id="step-6-badge-legend" value="6" 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;" vertex="1" parent="step-6-legend">
          <mxGeometry x="0" y="2" width="40" height="38" as="geometry" />
        </mxCell>
        <mxCell id="step-6-desc-legend" value="&lt;div&gt;&lt;b&gt;Score inline&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;Lambda extracts features. Idempotency key is network_transaction_id.&lt;/span&gt;&lt;/div&gt;" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" vertex="1" parent="step-6-legend">
          <mxGeometry x="52" y="0" width="548" height="80" as="geometry" />
        </mxCell>
        <mxCell id="step-7-legend" value="" style="group;fontFamily=Helvetica;" vertex="1" parent="legend-container" connectable="0">
          <mxGeometry x="0" y="568" width="600" height="80" as="geometry" />
        </mxCell>
        <mxCell id="step-7-badge-legend" value="7" 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;" vertex="1" parent="step-7-legend">
          <mxGeometry x="0" y="2" width="40" height="38" as="geometry" />
        </mxCell>
        <mxCell id="step-7-desc-legend" value="&lt;div&gt;&lt;b&gt;Record the decision&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;DynamoDB conditional write prevents duplicate declines on Pipe retries.&lt;/span&gt;&lt;/div&gt;" style="text;html=1;align=left;verticalAlign=top;spacingTop=-4;fontSize=14;labelBackgroundColor=none;whiteSpace=wrap;fontFamily=Helvetica;" vertex="1" parent="step-7-legend">
          <mxGeometry x="52" y="0" width="548" height="80" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>