<mxfile host="app.diagrams.net" agent="architecture-deliverables" version="24.0.0">
  <diagram name="Card Transaction — Event Sequence" id="19-transaction-event-sequence">
    <mxGraphModel dx="1400" dy="900" background="#ffffff" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1620" pageHeight="910" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="n.sw" value="&lt;b&gt;Card Switch&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#f5f5f5;strokeColor=#8c8c8c;fontColor=#333333;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;" vertex="1" parent="1">
          <mxGeometry x="60" y="80" width="190" height="710" as="geometry" />
        </mxCell>
        <mxCell id="n.gw" value="&lt;b&gt;Event Gateway&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#4a3200;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;" vertex="1" parent="1">
          <mxGeometry x="280" y="80" width="190" height="710" as="geometry" />
        </mxCell>
        <mxCell id="n.kf" value="&lt;b&gt;Kafka&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#4a3200;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;" vertex="1" parent="1">
          <mxGeometry x="490" y="80" width="190" height="710" as="geometry" />
        </mxCell>
        <mxCell id="n.fl" value="&lt;b&gt;Flink Enrichment&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;" vertex="1" parent="1">
          <mxGeometry x="710" y="80" width="190" height="710" as="geometry" />
        </mxCell>
        <mxCell id="n.ps" value="&lt;b&gt;Profile Store&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;" vertex="1" parent="1">
          <mxGeometry x="930" y="80" width="190" height="710" as="geometry" />
        </mxCell>
        <mxCell id="n.lk" value="&lt;b&gt;Bronze Lakehouse&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;" vertex="1" parent="1">
          <mxGeometry x="1150" y="80" width="190" height="710" as="geometry" />
        </mxCell>
        <mxCell id="n.fr" value="&lt;b&gt;Fraud Service&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#f5f5f5;strokeColor=#8c8c8c;fontColor=#333333;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;" vertex="1" parent="1">
          <mxGeometry x="1370" y="80" width="190" height="710" as="geometry" />
        </mxCell>
        <mxCell id="_m1" value="1. authorisation event" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.1296;exitDx=0;exitDy=0;entryX=0.5;entryY=0.1296;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.sw" target="n.gw">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m2" value="2. mTLS + schema validate" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.1859;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2197;entryDx=0;entryDy=0;align=left;spacingLeft=6;" edge="1" parent="1" source="n.gw" target="n.gw">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="450" y="210" />
              <mxPoint x="450" y="240" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_m3" value="3. produce txn.auth.v2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#d79b00;exitX=0.5;exitY=0.2592;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2592;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.gw" target="n.kf">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m4" value="4. invalid to DLQ" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;dashed=1;strokeColor=#b85450;fontColor=#b85450;exitX=0.5;exitY=0.3155;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3155;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.gw" target="n.kf">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m5" value="5. consume by customer key" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#d79b00;exitX=0.5;exitY=0.3718;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3718;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.kf" target="n.fl">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m6" value="6. dedup on event id" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.4282;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4620;entryDx=0;entryDy=0;align=left;spacingLeft=6;" edge="1" parent="1" source="n.fl" target="n.fl">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="890" y="390" />
              <mxPoint x="890" y="410" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_m7" value="7. lookup 360 profile" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.5014;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5014;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.fl" target="n.ps">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m8" value="8. profile + features" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.5577;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5577;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.ps" target="n.fl">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m9" value="9. derive velocity signals" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.6141;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6479;entryDx=0;entryDy=0;align=left;spacingLeft=6;" edge="1" parent="1" source="n.fl" target="n.fl">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="890" y="520" />
              <mxPoint x="890" y="540" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_m10" value="10. publish enriched event" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#d79b00;exitX=0.5;exitY=0.6873;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6873;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.fl" target="n.kf">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m11" value="11. sink raw + enriched" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#d79b00;exitX=0.5;exitY=0.7437;exitDx=0;exitDy=0;entryX=0.5;entryY=0.7437;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.fl" target="n.lk">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m12" value="12. enriched.txn.v1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#d79b00;exitX=0.5;exitY=0.8000;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8000;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.kf" target="n.fr">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m13" value="13. approve or challenge" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.8563;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8563;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.fr" target="n.sw">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m14" value="14. decision outcome" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#d79b00;exitX=0.5;exitY=0.9127;exitDx=0;exitDy=0;entryX=0.5;entryY=0.9127;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.fr" target="n.kf">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="title" value="Card Transaction — Event Sequence" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=20;fontStyle=1;fontColor=#16202c;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="20" width="1530" height="30" as="geometry" />
        </mxCell>
        <mxCell id="rule" value="" style="line;strokeWidth=1;html=1;strokeColor=#c9d3de;" vertex="1" parent="1">
          <mxGeometry x="40" y="50" width="1530" height="10" as="geometry" />
        </mxCell>
        <mxCell id="note" value="Happy path plus schema rejection. Retry, rebalance and backpressure paths are omitted." style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#8a97a5;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="840" width="1530" height="20" as="geometry" />
        </mxCell>
        <mxCell id="foot-rule" value="" style="line;strokeWidth=1;html=1;strokeColor=#e3e9ef;" vertex="1" parent="1">
          <mxGeometry x="40" y="860" width="1530" height="10" as="geometry" />
        </mxCell>
        <mxCell id="foot" value="v 1.0   ·   owner Risk Data Engineering   ·   date 2026-08" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=9;fontColor=#9aa7b4;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="870" width="1530" height="10" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
