<mxfile host="Electron" modified="2026-09-15T00:00:00.000Z" agent="draw.io" version="24.7.17">
  <diagram id="legacy-modernization-target" name="Target Architecture">
    <mxGraphModel dx="1200" dy="980" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="980" math="0" shadow="0">
      <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>

        <mxCell id="title" value="Legacy insurance modernization · target state" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Helvetica;fontSize=24;fontStyle=1;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="40" y="20" width="760" height="36" as="geometry"/></mxCell>
        <mxCell id="subtitle" value="Workflow moves into services; every service evaluates governed, versioned decisions through a shared rules layer." style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontFamily=Helvetica;fontSize=12;fontColor=#647069;" vertex="1" parent="1"><mxGeometry x="40" y="55" width="1040" height="30" as="geometry"/></mxCell>

        <mxCell id="channelsBox" value="DISTRIBUTION &amp;amp; CHANNELS" style="swimlane;html=1;horizontal=1;startSize=28;rounded=0;strokeColor=#AAB2AD;fillColor=#F6F1E7;swimlaneFillColor=#EEE8DC;fontFamily=Helvetica;fontSize=10;fontStyle=1;fontColor=#9F4C35;spacingLeft=12;" vertex="1" parent="1"><mxGeometry x="40" y="100" width="1120" height="105" as="geometry"/></mxCell>
        <mxCell id="agentPortal" value="Agent portal" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#647069;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=12;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="120" y="145" width="210" height="42" as="geometry"/></mxCell>
        <mxCell id="brokerApi" value="Broker API" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#647069;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=12;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="495" y="145" width="210" height="42" as="geometry"/></mxCell>
        <mxCell id="direct" value="Direct web &amp;amp; mobile" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#647069;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=12;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="870" y="145" width="210" height="42" as="geometry"/></mxCell>

        <mxCell id="apiBox" value="API &amp;amp; ORCHESTRATION" style="swimlane;html=1;horizontal=1;startSize=28;rounded=0;strokeColor=#AAB2AD;fillColor=#F6F1E7;swimlaneFillColor=#EEE8DC;fontFamily=Helvetica;fontSize=10;fontStyle=1;fontColor=#9F4C35;spacingLeft=12;" vertex="1" parent="1"><mxGeometry x="230" y="240" width="740" height="105" as="geometry"/></mxCell>
        <mxCell id="gateway" value="API gateway" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#647069;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=12;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="330" y="285" width="210" height="42" as="geometry"/></mxCell>
        <mxCell id="orchestrator" value="Workflow orchestrator" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#E17A56;strokeWidth=2;fillColor=#F3E8DA;fontFamily=Helvetica;fontSize=12;fontStyle=1;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="660" y="285" width="210" height="42" as="geometry"/></mxCell>

        <mxCell id="servicesBox" value="BUSINESS SERVICES · EXTRACTED FROM STORED PROCEDURES" style="swimlane;html=1;horizontal=1;startSize=28;rounded=0;strokeColor=#E17A56;strokeWidth=2;fillColor=#F6F1E7;swimlaneFillColor=#F3E8DA;fontFamily=Helvetica;fontSize=10;fontStyle=1;fontColor=#9F4C35;spacingLeft=12;" vertex="1" parent="1"><mxGeometry x="40" y="385" width="1120" height="120" as="geometry"/></mxCell>
        <mxCell id="rating" value="Rating" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#9F4C35;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=12;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="75" y="435" width="180" height="45" as="geometry"/></mxCell>
        <mxCell id="underwriting" value="Underwriting" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#9F4C35;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=12;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="290" y="435" width="180" height="45" as="geometry"/></mxCell>
        <mxCell id="issuance" value="Policy issuance" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#9F4C35;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=12;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="505" y="435" width="180" height="45" as="geometry"/></mxCell>
        <mxCell id="billing" value="Billing &amp;amp; commission" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#9F4C35;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=12;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="720" y="435" width="180" height="45" as="geometry"/></mxCell>
        <mxCell id="claims" value="Claims" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#9F4C35;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=12;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="935" y="435" width="180" height="45" as="geometry"/></mxCell>

        <mxCell id="rulesBox" value="RULES LAYER · SHARED DECISION GOVERNANCE" style="swimlane;html=1;horizontal=1;startSize=28;rounded=0;strokeColor=#E17A56;strokeWidth=2;fillColor=#F6F1E7;swimlaneFillColor=#F3E8DA;fontFamily=Helvetica;fontSize=10;fontStyle=1;fontColor=#9F4C35;spacingLeft=12;" vertex="1" parent="1"><mxGeometry x="40" y="545" width="1120" height="125" as="geometry"/></mxCell>
        <mxCell id="rulesUi" value="Rules management UI&lt;br&gt;GoRules BRMS" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#9F4C35;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=11;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="150" y="590" width="210" height="48" as="geometry"/></mxCell>
        <mxCell id="decisionRepo" value="Versioned decision graphs&lt;br&gt;JDM JSON" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8;strokeColor=#9F4C35;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=11;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="495" y="586" width="210" height="56" as="geometry"/></mxCell>
        <mxCell id="zenEngine" value="Decision evaluation&lt;br&gt;Zen Engine in every service" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#9F4C35;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=11;fontStyle=1;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="840" y="590" width="210" height="48" as="geometry"/></mxCell>

        <mxCell id="eventBox" value="EVENT BACKBONE" style="swimlane;html=1;horizontal=1;startSize=28;rounded=0;strokeColor=#AAB2AD;fillColor=#F6F1E7;swimlaneFillColor=#EEE8DC;fontFamily=Helvetica;fontSize=10;fontStyle=1;fontColor=#9F4C35;spacingLeft=12;" vertex="1" parent="1"><mxGeometry x="690" y="715" width="470" height="105" as="geometry"/></mxCell>
        <mxCell id="kafka" value="Kafka / Event Hub" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#0F1D19;strokeWidth=2;fillColor=#172923;fontFamily=Helvetica;fontSize=12;fontStyle=1;fontColor=#F5F0E6;" vertex="1" parent="1"><mxGeometry x="810" y="757" width="230" height="48" as="geometry"/></mxCell>

        <mxCell id="dataBox" value="MODERN DATA LAYER" style="swimlane;html=1;horizontal=1;startSize=28;rounded=0;strokeColor=#AAB2AD;fillColor=#F6F1E7;swimlaneFillColor=#EEE8DC;fontFamily=Helvetica;fontSize=10;fontStyle=1;fontColor=#9F4C35;spacingLeft=12;" vertex="1" parent="1"><mxGeometry x="40" y="715" width="610" height="105" as="geometry"/></mxCell>
        <mxCell id="operational" value="Operational DB&lt;br&gt;PostgreSQL" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8;strokeColor=#647069;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=11;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="70" y="757" width="160" height="48" as="geometry"/></mxCell>
        <mxCell id="document" value="Document store" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8;strokeColor=#647069;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=11;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="265" y="757" width="160" height="48" as="geometry"/></mxCell>
        <mxCell id="lakehouse" value="Analytics lakehouse" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8;strokeColor=#647069;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=11;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="460" y="757" width="160" height="48" as="geometry"/></mxCell>

        <mxCell id="legacyBox" value="LEGACY CORE · DRAINING" style="swimlane;html=1;horizontal=1;startSize=28;rounded=0;dashed=1;dashPattern=6 4;strokeColor=#9F4C35;fillColor=#F6F1E7;swimlaneFillColor=#F3E8DA;fontFamily=Helvetica;fontSize=10;fontStyle=1;fontColor=#9F4C35;spacingLeft=12;" vertex="1" parent="1"><mxGeometry x="825" y="855" width="335" height="105" as="geometry"/></mxCell>
        <mxCell id="sybase" value="Sybase ASE" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=8;strokeColor=#9F4C35;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=11;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="855" y="897" width="125" height="48" as="geometry"/></mxCell>
        <mxCell id="storedProcs" value="Legacy stored procedures" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=#9F4C35;fillColor=#FFFFFF;fontFamily=Helvetica;fontSize=11;fontColor=#14231E;" vertex="1" parent="1"><mxGeometry x="1005" y="897" width="125" height="48" as="geometry"/></mxCell>

        <mxCell id="e1" value="API requests" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;strokeColor=#647069;fontColor=#647069;fontSize=10;endArrow=block;endFill=1;" edge="1" parent="1" source="channelsBox" target="gateway"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9F4C35;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="gateway" target="orchestrator"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e5" value="commands and workflows" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;entryX=0.65;entryY=0;strokeColor=#9F4C35;fontColor=#9F4C35;fontSize=10;endArrow=block;endFill=1;" edge="1" parent="1" source="orchestrator" target="servicesBox"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e10" value="domain events" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;entryX=1;entryY=0.5;strokeColor=#647069;fontColor=#647069;fontSize=10;endArrow=block;endFill=1;" edge="1" parent="1" source="servicesBox" target="kafka"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e13" value="operational and analytical projections" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.35;exitY=1;entryX=0.5;entryY=0;strokeColor=#647069;fontColor=#647069;fontSize=10;endArrow=block;endFill=1;" edge="1" parent="1" source="kafka" target="dataBox"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e16" value="CDC stream" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;entryX=1;entryY=0.5;dashed=1;dashPattern=6 4;strokeColor=#9F4C35;fontColor=#9F4C35;fontSize=10;endArrow=block;endFill=1;" edge="1" parent="1" source="sybase" target="kafka"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e19" value="rule evaluation" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;entryX=0.1;entryY=0;dashed=1;dashPattern=4 4;strokeColor=#9F4C35;fontColor=#9F4C35;fontSize=10;endArrow=block;endFill=1;" edge="1" parent="1" source="rating" target="rulesBox"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;entryX=0.3;entryY=0;dashed=1;dashPattern=4 4;strokeColor=#9F4C35;endArrow=block;endFill=1;" edge="1" parent="1" source="underwriting" target="rulesBox"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;dashed=1;dashPattern=4 4;strokeColor=#9F4C35;endArrow=block;endFill=1;" edge="1" parent="1" source="issuance" target="rulesBox"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;entryX=0.7;entryY=0;dashed=1;dashPattern=4 4;strokeColor=#9F4C35;endArrow=block;endFill=1;" edge="1" parent="1" source="billing" target="rulesBox"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;entryX=0.9;entryY=0;dashed=1;dashPattern=4 4;strokeColor=#9F4C35;endArrow=block;endFill=1;" edge="1" parent="1" source="claims" target="rulesBox"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#9F4C35;endArrow=block;endFill=1;" edge="1" parent="1" source="rulesUi" target="decisionRepo"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;dashPattern=4 4;strokeColor=#9F4C35;endArrow=block;endFill=1;" edge="1" parent="1" source="decisionRepo" target="zenEngine"><mxGeometry relative="1" as="geometry"/></mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
