@itsthecsguy/linework 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -9
- package/dist/api.js +39 -2
- package/dist/cli.js +13 -0
- package/dist/lint/check.js +4 -0
- package/dist/render/browser.js +29 -3
- package/package.json +1 -1
- package/skills/linework/SKILL.md +40 -21
- package/skills/linework/examples/checkout.yaml +4 -4
- package/skills/linework/examples/pay-sequence.yaml +2 -2
- package/skills/linework/examples/refund-flow.yaml +1 -1
- package/skills/linework/references/google-docs.md +5 -5
- package/skills/linework/references/spec.md +1 -1
- package/skills/linework/examples/billing-er.drawio.svg +0 -4
- package/skills/linework/examples/checkout.drawio.svg +0 -4
- package/skills/linework/examples/pay-sequence.drawio.svg +0 -4
- package/skills/linework/examples/payment-state.drawio.svg +0 -4
- package/skills/linework/examples/refund-flow.drawio.svg +0 -4
- package/skills/linework/examples/serverless-aws.drawio.svg +0 -4
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<!-- Do not edit this file with editors other than draw.io -->
|
|
3
|
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
-
<svg xmlns="http://www.w3.org/2000/svg" style="background: #FFFFFF; background-color: light-dark(#FFFFFF, #121212);" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="886px" height="358px" viewBox="0 0 886 358" content="<mxfile host="aiviz" agent="aiviz"><diagram id="aiviz" name="Billing schema"><mxGraphModel grid="1" gridSize="8" guides="1" tooltips="1" connect="1" arrows="1" page="0" background="#FFFFFF" math="0" shadow="0"><root><object id="0" label="" aiviz_version="1" aiviz_type="er" aiviz_direction="auto" aiviz_title="Billing schema"><mxCell/></object><mxCell id="1" parent="0"/><object id="orgs" label="organizations" aiviz_kind="entity" aiviz_label="organizations" aiviz_auto="708,120,160,116"><mxCell style="shape=swimlane;childLayout=stackLayout;horizontal=1;startSize=32;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;rounded=1;absoluteArcSize=1;arcSize=12;swimlaneFillColor=#FFFFFF;fontStyle=1;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="708" y="120" width="160" height="116" as="geometry"/></mxCell></object><object id="users" label="Users" aiviz_kind="entity" aiviz_label="Users" aiviz_auto="364,16,184,142"><mxCell style="shape=swimlane;childLayout=stackLayout;horizontal=1;startSize=32;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;rounded=1;absoluteArcSize=1;arcSize=12;swimlaneFillColor=#FFFFFF;fontStyle=1;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="364" y="16" width="184" height="142" as="geometry"/></mxCell></object><object id="subscriptions" label="Subscriptions" aiviz_kind="entity" aiviz_label="Subscriptions" aiviz_auto="372,198,168,142"><mxCell style="shape=swimlane;childLayout=stackLayout;horizontal=1;startSize=32;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;rounded=1;absoluteArcSize=1;arcSize=12;swimlaneFillColor=#FFFFFF;fontStyle=1;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="372" y="198" width="168" height="142" as="geometry"/></mxCell></object><object id="invoices" label="Invoices" aiviz_kind="entity" aiviz_label="Invoices" aiviz_auto="16,198,192,142"><mxCell style="shape=swimlane;childLayout=stackLayout;horizontal=1;startSize=32;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=0;marginBottom=0;rounded=1;absoluteArcSize=1;arcSize=12;swimlaneFillColor=#FFFFFF;fontStyle=1;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="16" y="198" width="192" height="142" as="geometry"/></mxCell></object><object id="orgs__id" label="&lt;table style=&quot;width:100%;height:100%;border-collapse:collapse&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:0 6px 0 12px&quot;&gt;&lt;b&gt;id&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;text-align:right;padding:0 12px 0 6px;color:#64748B&quot;&gt;uuid PK&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;" aiviz_field="id" aiviz_ftype="uuid" aiviz_flags="pk"><mxCell style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=10;spacingRight=10;overflow=fill;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=12;fontColor=#0F172A;" vertex="1" parent="orgs"><mxGeometry x="0" y="32" width="160" height="26" as="geometry"/></mxCell></object><object id="orgs__name" label="&lt;table style=&quot;width:100%;height:100%;border-collapse:collapse&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:0 6px 0 12px&quot;&gt;name&lt;/td&gt;&lt;td style=&quot;text-align:right;padding:0 12px 0 6px;color:#64748B&quot;&gt;text&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;" aiviz_field="name" aiviz_ftype="text"><mxCell style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=10;spacingRight=10;overflow=fill;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=12;fontColor=#0F172A;" vertex="1" parent="orgs"><mxGeometry x="0" y="58" width="160" height="26" as="geometry"/></mxCell></object><object id="orgs__plan" label="&lt;table style=&quot;width:100%;height:100%;border-collapse:collapse&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:0 6px 0 12px&quot;&gt;plan&lt;/td&gt;&lt;td style=&quot;text-align:right;padding:0 12px 0 6px;color:#64748B&quot;&gt;text&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;" aiviz_field="plan" aiviz_ftype="text"><mxCell style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=10;spacingRight=10;overflow=fill;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=12;fontColor=#0F172A;" vertex="1" parent="orgs"><mxGeometry x="0" y="84" width="160" height="26" as="geometry"/></mxCell></object><object id="users__id" label="&lt;table style=&quot;width:100%;height:100%;border-collapse:collapse&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:0 6px 0 12px&quot;&gt;&lt;b&gt;id&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;text-align:right;padding:0 12px 0 6px;color:#64748B&quot;&gt;uuid PK&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;" aiviz_field="id" aiviz_ftype="uuid" aiviz_flags="pk"><mxCell style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=10;spacingRight=10;overflow=fill;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=12;fontColor=#0F172A;" vertex="1" parent="users"><mxGeometry x="0" y="32" width="184" height="26" as="geometry"/></mxCell></object><object id="users__org_id" label="&lt;table style=&quot;width:100%;height:100%;border-collapse:collapse&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:0 6px 0 12px&quot;&gt;org_id&lt;/td&gt;&lt;td style=&quot;text-align:right;padding:0 12px 0 6px;color:#64748B&quot;&gt;uuid FK&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;" aiviz_field="org_id" aiviz_ftype="uuid" aiviz_flags="fk"><mxCell style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=10;spacingRight=10;overflow=fill;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=12;fontColor=#0F172A;" vertex="1" parent="users"><mxGeometry x="0" y="58" width="184" height="26" as="geometry"/></mxCell></object><object id="users__email" label="&lt;table style=&quot;width:100%;height:100%;border-collapse:collapse&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:0 6px 0 12px&quot;&gt;email&lt;/td&gt;&lt;td style=&quot;text-align:right;padding:0 12px 0 6px;color:#64748B&quot;&gt;text unique&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;" aiviz_field="email" aiviz_ftype="text" aiviz_flags="unique"><mxCell style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=10;spacingRight=10;overflow=fill;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=12;fontColor=#0F172A;" vertex="1" parent="users"><mxGeometry x="0" y="84" width="184" height="26" as="geometry"/></mxCell></object><object id="users__created_at" label="&lt;table style=&quot;width:100%;height:100%;border-collapse:collapse&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:0 6px 0 12px&quot;&gt;created_at&lt;/td&gt;&lt;td style=&quot;text-align:right;padding:0 12px 0 6px;color:#64748B&quot;&gt;timestamptz&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;" aiviz_field="created_at" aiviz_ftype="timestamptz"><mxCell style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=10;spacingRight=10;overflow=fill;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=12;fontColor=#0F172A;" vertex="1" parent="users"><mxGeometry x="0" y="110" width="184" height="26" as="geometry"/></mxCell></object><object id="subscriptions__id" label="&lt;table style=&quot;width:100%;height:100%;border-collapse:collapse&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:0 6px 0 12px&quot;&gt;&lt;b&gt;id&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;text-align:right;padding:0 12px 0 6px;color:#64748B&quot;&gt;uuid PK&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;" aiviz_field="id" aiviz_ftype="uuid" aiviz_flags="pk"><mxCell style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=10;spacingRight=10;overflow=fill;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=12;fontColor=#0F172A;" vertex="1" parent="subscriptions"><mxGeometry x="0" y="32" width="168" height="26" as="geometry"/></mxCell></object><object id="subscriptions__org_id" label="&lt;table style=&quot;width:100%;height:100%;border-collapse:collapse&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:0 6px 0 12px&quot;&gt;org_id&lt;/td&gt;&lt;td style=&quot;text-align:right;padding:0 12px 0 6px;color:#64748B&quot;&gt;uuid FK&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;" aiviz_field="org_id" aiviz_ftype="uuid" aiviz_flags="fk"><mxCell style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=10;spacingRight=10;overflow=fill;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=12;fontColor=#0F172A;" vertex="1" parent="subscriptions"><mxGeometry x="0" y="58" width="168" height="26" as="geometry"/></mxCell></object><object id="subscriptions__stripe_id" label="&lt;table style=&quot;width:100%;height:100%;border-collapse:collapse&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:0 6px 0 12px&quot;&gt;stripe_id&lt;/td&gt;&lt;td style=&quot;text-align:right;padding:0 12px 0 6px;color:#64748B&quot;&gt;text unique&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;" aiviz_field="stripe_id" aiviz_ftype="text" aiviz_flags="unique"><mxCell style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=10;spacingRight=10;overflow=fill;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=12;fontColor=#0F172A;" vertex="1" parent="subscriptions"><mxGeometry x="0" y="84" width="168" height="26" as="geometry"/></mxCell></object><object id="subscriptions__status" label="&lt;table style=&quot;width:100%;height:100%;border-collapse:collapse&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:0 6px 0 12px&quot;&gt;status&lt;/td&gt;&lt;td style=&quot;text-align:right;padding:0 12px 0 6px;color:#64748B&quot;&gt;text&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;" aiviz_field="status" aiviz_ftype="text"><mxCell style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=10;spacingRight=10;overflow=fill;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=12;fontColor=#0F172A;" vertex="1" parent="subscriptions"><mxGeometry x="0" y="110" width="168" height="26" as="geometry"/></mxCell></object><object id="invoices__id" label="&lt;table style=&quot;width:100%;height:100%;border-collapse:collapse&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:0 6px 0 12px&quot;&gt;&lt;b&gt;id&lt;/b&gt;&lt;/td&gt;&lt;td style=&quot;text-align:right;padding:0 12px 0 6px;color:#64748B&quot;&gt;uuid PK&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;" aiviz_field="id" aiviz_ftype="uuid" aiviz_flags="pk"><mxCell style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=10;spacingRight=10;overflow=fill;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=12;fontColor=#0F172A;" vertex="1" parent="invoices"><mxGeometry x="0" y="32" width="192" height="26" as="geometry"/></mxCell></object><object id="invoices__subscription_id" label="&lt;table style=&quot;width:100%;height:100%;border-collapse:collapse&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:0 6px 0 12px&quot;&gt;subscription_id&lt;/td&gt;&lt;td style=&quot;text-align:right;padding:0 12px 0 6px;color:#64748B&quot;&gt;uuid FK&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;" aiviz_field="subscription_id" aiviz_ftype="uuid" aiviz_flags="fk"><mxCell style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=10;spacingRight=10;overflow=fill;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=12;fontColor=#0F172A;" vertex="1" parent="invoices"><mxGeometry x="0" y="58" width="192" height="26" as="geometry"/></mxCell></object><object id="invoices__amount_cents" label="&lt;table style=&quot;width:100%;height:100%;border-collapse:collapse&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:0 6px 0 12px&quot;&gt;amount_cents&lt;/td&gt;&lt;td style=&quot;text-align:right;padding:0 12px 0 6px;color:#64748B&quot;&gt;int&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;" aiviz_field="amount_cents" aiviz_ftype="int"><mxCell style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=10;spacingRight=10;overflow=fill;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=12;fontColor=#0F172A;" vertex="1" parent="invoices"><mxGeometry x="0" y="84" width="192" height="26" as="geometry"/></mxCell></object><object id="invoices__paid_at" label="&lt;table style=&quot;width:100%;height:100%;border-collapse:collapse&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:0 6px 0 12px&quot;&gt;paid_at&lt;/td&gt;&lt;td style=&quot;text-align:right;padding:0 12px 0 6px;color:#64748B&quot;&gt;timestamptz null&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;" aiviz_field="paid_at" aiviz_ftype="timestamptz" aiviz_flags="null"><mxCell style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=10;spacingRight=10;overflow=fill;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=12;fontColor=#0F172A;" vertex="1" parent="invoices"><mxGeometry x="0" y="110" width="192" height="26" as="geometry"/></mxCell></object><object id="e_users__orgs" label="belongs to" aiviz_edge="users-&gt;orgs" aiviz_auto="680,87 680,159"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;startArrow=ERzeroToMany;endArrow=ERmandOne;startFill=0;endFill=0;startSize=10;endSize=10;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.333;entryDx=0;entryDy=0;" edge="1" parent="1" source="users" target="orgs"><mxGeometry x="-0.309" relative="1" as="geometry"><Array as="points"><mxPoint x="680" y="87"/><mxPoint x="680" y="159"/></Array></mxGeometry></mxCell></object><object id="e_subscriptions__orgs" label="billed to" aiviz_edge="subscriptions-&gt;orgs" aiviz_auto="680,269 680,197"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;startArrow=ERzeroToMany;endArrow=ERmandOne;startFill=0;endFill=0;startSize=10;endSize=10;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.667;entryDx=0;entryDy=0;" edge="1" parent="1" source="subscriptions" target="orgs"><mxGeometry x="-0.266" relative="1" as="geometry"><Array as="points"><mxPoint x="680" y="269"/><mxPoint x="680" y="197"/></Array></mxGeometry></mxCell></object><object id="e_invoices__subscriptions" label="issued for" aiviz_edge="invoices-&gt;subscriptions" aiviz_auto=""><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;startArrow=ERzeroToMany;endArrow=ERmandOne;startFill=0;endFill=0;startSize=10;endSize=10;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="invoices" target="subscriptions"><mxGeometry x="-0.049" relative="1" as="geometry"/></mxCell></object></root></mxGraphModel></diagram></mxfile>"><defs/><rect fill="#FFFFFF" width="100%" height="100%" x="0" y="0" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="orgs"><g><path d="M 868 152 L 868 126 Q 868 120 862 120 L 714 120 Q 708 120 708 126 L 708 152" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/><path d="M 708 152 L 708 230 Q 708 236 714 236 L 862 236 Q 868 236 868 230 L 868 152" fill="#ffffff" stroke="#4f46e5" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/><path d="M 708 152 L 868 152" fill="none" stroke="#4f46e5" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 136px; margin-left: 709px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">organizations</div></div></div></foreignObject><text x="788" y="140" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" font-weight="bold" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">organizations</text></switch></g></g><g data-cell-id="orgs__id"><g><rect x="708" y="152" width="160" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 162px; height: 26px; padding-top: 152px; margin-left: 708px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 160px; height: 26px; overflow: hidden; color: #0F172A; "><div style="display: inline-block; font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><table style="width:100%;height:100%;border-collapse:collapse"><tbody><tr><td style="padding:0 6px 0 12px"><b>id</b></td><td style="text-align: right; padding: 0px 12px 0px 6px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">uuid PK</td></tr></tbody></table></div></div></div></foreignObject><text x="708" y="169" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="12px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">iduuid PK</text></switch></g></g></g><g data-cell-id="orgs__name"><g><rect x="708" y="178" width="160" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 162px; height: 26px; padding-top: 178px; margin-left: 708px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 160px; height: 26px; overflow: hidden; color: #0F172A; "><div style="display: inline-block; font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><table style="width:100%;height:100%;border-collapse:collapse"><tbody><tr><td style="padding:0 6px 0 12px">name</td><td style="text-align: right; padding: 0px 12px 0px 6px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">text</td></tr></tbody></table></div></div></div></foreignObject><text x="708" y="195" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="12px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">nametext</text></switch></g></g></g><g data-cell-id="orgs__plan"><g><rect x="708" y="204" width="160" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 162px; height: 26px; padding-top: 204px; margin-left: 708px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 160px; height: 26px; overflow: hidden; color: #0F172A; "><div style="display: inline-block; font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><table style="width:100%;height:100%;border-collapse:collapse"><tbody><tr><td style="padding:0 6px 0 12px">plan</td><td style="text-align: right; padding: 0px 12px 0px 6px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">text</td></tr></tbody></table></div></div></div></foreignObject><text x="708" y="221" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="12px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">plantext</text></switch></g></g></g></g><g data-cell-id="users"><g><path d="M 548 48 L 548 22 Q 548 16 542 16 L 370 16 Q 364 16 364 22 L 364 48" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/><path d="M 364 48 L 364 152 Q 364 158 370 158 L 542 158 Q 548 158 548 152 L 548 48" fill="#ffffff" stroke="#4f46e5" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/><path d="M 364 48 L 548 48" fill="none" stroke="#4f46e5" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 182px; height: 1px; padding-top: 32px; margin-left: 365px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">Users</div></div></div></foreignObject><text x="456" y="36" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" font-weight="bold" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Users</text></switch></g></g><g data-cell-id="users__id"><g><rect x="364" y="48" width="184" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 186px; height: 26px; padding-top: 48px; margin-left: 364px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 184px; height: 26px; overflow: hidden; color: #0F172A; "><div style="display: inline-block; font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><table style="width:100%;height:100%;border-collapse:collapse"><tbody><tr><td style="padding:0 6px 0 12px"><b>id</b></td><td style="text-align: right; padding: 0px 12px 0px 6px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">uuid PK</td></tr></tbody></table></div></div></div></foreignObject><text x="364" y="65" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="12px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">iduuid PK</text></switch></g></g></g><g data-cell-id="users__org_id"><g><rect x="364" y="74" width="184" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 186px; height: 26px; padding-top: 74px; margin-left: 364px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 184px; height: 26px; overflow: hidden; color: #0F172A; "><div style="display: inline-block; font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><table style="width:100%;height:100%;border-collapse:collapse"><tbody><tr><td style="padding:0 6px 0 12px">org_id</td><td style="text-align: right; padding: 0px 12px 0px 6px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">uuid FK</td></tr></tbody></table></div></div></div></foreignObject><text x="364" y="91" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="12px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">org_iduuid FK</text></switch></g></g></g><g data-cell-id="users__email"><g><rect x="364" y="100" width="184" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 186px; height: 26px; padding-top: 100px; margin-left: 364px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 184px; height: 26px; overflow: hidden; color: #0F172A; "><div style="display: inline-block; font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><table style="width:100%;height:100%;border-collapse:collapse"><tbody><tr><td style="padding:0 6px 0 12px">email</td><td style="text-align: right; padding: 0px 12px 0px 6px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">text unique</td></tr></tbody></table></div></div></div></foreignObject><text x="364" y="117" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="12px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">emailtext unique</text></switch></g></g></g><g data-cell-id="users__created_at"><g><rect x="364" y="126" width="184" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 186px; height: 26px; padding-top: 126px; margin-left: 364px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 184px; height: 26px; overflow: hidden; color: #0F172A; "><div style="display: inline-block; font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><table style="width:100%;height:100%;border-collapse:collapse"><tbody><tr><td style="padding:0 6px 0 12px">created_at</td><td style="text-align: right; padding: 0px 12px 0px 6px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">timestamptz</td></tr></tbody></table></div></div></div></foreignObject><text x="364" y="143" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="12px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">created_attimestamptz</text></switch></g></g></g></g><g data-cell-id="subscriptions"><g><path d="M 540 230 L 540 204 Q 540 198 534 198 L 378 198 Q 372 198 372 204 L 372 230" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/><path d="M 372 230 L 372 334 Q 372 340 378 340 L 534 340 Q 540 340 540 334 L 540 230" fill="#ffffff" stroke="#4f46e5" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/><path d="M 372 230 L 540 230" fill="none" stroke="#4f46e5" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 166px; height: 1px; padding-top: 214px; margin-left: 373px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">Subscriptions</div></div></div></foreignObject><text x="456" y="218" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" font-weight="bold" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Subscriptions</text></switch></g></g><g data-cell-id="subscriptions__id"><g><rect x="372" y="230" width="168" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 170px; height: 26px; padding-top: 230px; margin-left: 372px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 168px; height: 26px; overflow: hidden; color: #0F172A; "><div style="display: inline-block; font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><table style="width:100%;height:100%;border-collapse:collapse"><tbody><tr><td style="padding:0 6px 0 12px"><b>id</b></td><td style="text-align: right; padding: 0px 12px 0px 6px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">uuid PK</td></tr></tbody></table></div></div></div></foreignObject><text x="372" y="247" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="12px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">iduuid PK</text></switch></g></g></g><g data-cell-id="subscriptions__org_id"><g><rect x="372" y="256" width="168" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 170px; height: 26px; padding-top: 256px; margin-left: 372px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 168px; height: 26px; overflow: hidden; color: #0F172A; "><div style="display: inline-block; font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><table style="width:100%;height:100%;border-collapse:collapse"><tbody><tr><td style="padding:0 6px 0 12px">org_id</td><td style="text-align: right; padding: 0px 12px 0px 6px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">uuid FK</td></tr></tbody></table></div></div></div></foreignObject><text x="372" y="273" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="12px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">org_iduuid FK</text></switch></g></g></g><g data-cell-id="subscriptions__stripe_id"><g><rect x="372" y="282" width="168" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 170px; height: 26px; padding-top: 282px; margin-left: 372px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 168px; height: 26px; overflow: hidden; color: #0F172A; "><div style="display: inline-block; font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><table style="width:100%;height:100%;border-collapse:collapse"><tbody><tr><td style="padding:0 6px 0 12px">stripe_id</td><td style="text-align: right; padding: 0px 12px 0px 6px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">text unique</td></tr></tbody></table></div></div></div></foreignObject><text x="372" y="299" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="12px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">stripe_idtext unique</text></switch></g></g></g><g data-cell-id="subscriptions__status"><g><rect x="372" y="308" width="168" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 170px; height: 26px; padding-top: 308px; margin-left: 372px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 168px; height: 26px; overflow: hidden; color: #0F172A; "><div style="display: inline-block; font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><table style="width:100%;height:100%;border-collapse:collapse"><tbody><tr><td style="padding:0 6px 0 12px">status</td><td style="text-align: right; padding: 0px 12px 0px 6px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">text</td></tr></tbody></table></div></div></div></foreignObject><text x="372" y="325" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="12px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">statustext</text></switch></g></g></g></g><g data-cell-id="invoices"><g><path d="M 208 230 L 208 204 Q 208 198 202 198 L 22 198 Q 16 198 16 204 L 16 230" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/><path d="M 16 230 L 16 334 Q 16 340 22 340 L 202 340 Q 208 340 208 334 L 208 230" fill="#ffffff" stroke="#4f46e5" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/><path d="M 16 230 L 208 230" fill="none" stroke="#4f46e5" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 190px; height: 1px; padding-top: 214px; margin-left: 17px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">Invoices</div></div></div></foreignObject><text x="112" y="218" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" font-weight="bold" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Invoices</text></switch></g></g><g data-cell-id="invoices__id"><g><rect x="16" y="230" width="192" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 194px; height: 26px; padding-top: 230px; margin-left: 16px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 192px; height: 26px; overflow: hidden; color: #0F172A; "><div style="display: inline-block; font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><table style="width:100%;height:100%;border-collapse:collapse"><tbody><tr><td style="padding:0 6px 0 12px"><b>id</b></td><td style="text-align: right; padding: 0px 12px 0px 6px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">uuid PK</td></tr></tbody></table></div></div></div></foreignObject><text x="16" y="247" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="12px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">iduuid PK</text></switch></g></g></g><g data-cell-id="invoices__subscription_id"><g><rect x="16" y="256" width="192" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 194px; height: 26px; padding-top: 256px; margin-left: 16px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 192px; height: 26px; overflow: hidden; color: #0F172A; "><div style="display: inline-block; font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><table style="width:100%;height:100%;border-collapse:collapse"><tbody><tr><td style="padding:0 6px 0 12px">subscription_id</td><td style="text-align: right; padding: 0px 12px 0px 6px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">uuid FK</td></tr></tbody></table></div></div></div></foreignObject><text x="16" y="273" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="12px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">subscription_iduuid FK</text></switch></g></g></g><g data-cell-id="invoices__amount_cents"><g><rect x="16" y="282" width="192" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 194px; height: 26px; padding-top: 282px; margin-left: 16px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 192px; height: 26px; overflow: hidden; color: #0F172A; "><div style="display: inline-block; font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><table style="width:100%;height:100%;border-collapse:collapse"><tbody><tr><td style="padding:0 6px 0 12px">amount_cents</td><td style="text-align: right; padding: 0px 12px 0px 6px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">int</td></tr></tbody></table></div></div></div></foreignObject><text x="16" y="299" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="12px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">amount_centsint</text></switch></g></g></g><g data-cell-id="invoices__paid_at"><g><rect x="16" y="308" width="192" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 194px; height: 26px; padding-top: 308px; margin-left: 16px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; width: 192px; height: 26px; overflow: hidden; color: #0F172A; "><div style="display: inline-block; font-size: 12px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; width: 100%; height: 100%; white-space: normal; word-wrap: normal; "><table style="width:100%;height:100%;border-collapse:collapse"><tbody><tr><td style="padding:0 6px 0 12px">paid_at</td><td style="text-align: right; padding: 0px 12px 0px 6px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">timestamptz null</td></tr></tbody></table></div></div></div></foreignObject><text x="16" y="325" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="12px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">paid_attimestamptz null</text></switch></g></g></g></g><g data-cell-id="e_users__orgs"><g><path d="M 572.25 87 L 674 87 Q 680 87 680 93 L 680 152.6 Q 680 158.6 686 158.61 L 708 158.63" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><ellipse cx="566.75" cy="87" rx="5" ry="5" fill="none" stroke="#64748b" stroke-width="1.5" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 548 93.25 L 560.5 87 L 548 80.75 M 560.5 87 L 548 87" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 701.74 164.87 L 701.76 152.37 M 695.49 164.87 L 695.51 152.37" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 87px; margin-left: 628px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">belongs to</div></div></div></foreignObject><text x="628" y="90" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">belongs to</text></switch></g></g></g><g data-cell-id="e_subscriptions__orgs"><g><path d="M 564.25 269 L 674 269 Q 680 269 680 263 L 680 203.4 Q 680 197.4 686 197.39 L 708 197.37" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><ellipse cx="558.75" cy="269" rx="5" ry="5" fill="none" stroke="#64748b" stroke-width="1.5" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 540 275.25 L 552.5 269 L 540 262.75 M 552.5 269 L 540 269" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 701.76 203.63 L 701.74 191.13 M 695.51 203.63 L 695.49 191.13" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 269px; margin-left: 628px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">billed to</div></div></div></foreignObject><text x="628" y="272" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">billed to</text></switch></g></g></g><g data-cell-id="e_invoices__subscriptions"><g><path d="M 232.25 269 L 372 269" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><ellipse cx="226.75" cy="269" rx="5" ry="5" fill="none" stroke="#64748b" stroke-width="1.5" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 208 275.25 L 220.5 269 L 208 262.75 M 220.5 269 L 208 269" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 365.75 275.25 L 365.75 262.75 M 359.5 275.25 L 359.5 262.75" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 269px; margin-left: 286px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">issued for</div></div></div></foreignObject><text x="286" y="272" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">issued for</text></switch></g></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<!-- Do not edit this file with editors other than draw.io -->
|
|
3
|
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
-
<svg xmlns="http://www.w3.org/2000/svg" style="background: #FFFFFF; background-color: light-dark(#FFFFFF, #121212);" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="656px" height="1187px" viewBox="0 0 656 1187" content="<mxfile host="aiviz" agent="aiviz"><diagram id="aiviz" name="Checkout"><mxGraphModel grid="1" gridSize="8" guides="1" tooltips="1" connect="1" arrows="1" page="0" background="#FFFFFF" math="0" shadow="0"><root><object id="0" label="" aiviz_version="1" aiviz_type="architecture" aiviz_direction="auto" aiviz_title="Checkout"><mxCell/></object><mxCell id="1" parent="0"/><object id="vpc" label="Production VPC" aiviz_type="group" aiviz_label="Production VPC" aiviz_auto="16,341,494,655"><mxCell style="rounded=1;absoluteArcSize=1;arcSize=20;html=1;whiteSpace=wrap;container=1;collapsible=0;fillColor=#F8FAFC;strokeColor=#CBD5E1;strokeWidth=1;dashed=1;dashPattern=4 4;verticalAlign=top;align=left;spacingLeft=14;spacingTop=6;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#64748B;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="16" y="341" width="494" height="655" as="geometry"/></mxCell></object><object id="data" label="Data tier" aiviz_type="group" aiviz_label="Data tier" aiviz_auto="20,503,380,132"><mxCell style="rounded=1;absoluteArcSize=1;arcSize=20;html=1;whiteSpace=wrap;container=1;collapsible=0;fillColor=#F8FAFC;strokeColor=#CBD5E1;strokeWidth=1;dashed=1;dashPattern=4 4;verticalAlign=top;align=left;spacingLeft=14;spacingTop=6;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#64748B;fontStyle=1;" vertex="1" parent="vpc"><mxGeometry x="20" y="503" width="380" height="132" as="geometry"/></mxCell></object><object id="user" label="&lt;span style=&quot;font-weight:600&quot;&gt;Shopper&lt;/span&gt;" aiviz_kind="person" aiviz_label="Shopper" aiviz_auto="303,16,160,40"><mxCell style="rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#FDF4FF;strokeColor=#C026D3;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="303" y="16" width="160" height="40" as="geometry"/></mxCell></object><object id="web" label="&lt;span style=&quot;font-weight:600&quot;&gt;Web app&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-size:11px;color:#64748B&quot;&gt;Next.js&lt;/span&gt;" aiviz_kind="client" aiviz_label="Web app" aiviz_tech="Next.js" aiviz_auto="303,168,160,56"><mxCell style="rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#F0F9FF;strokeColor=#0284C7;strokeWidth=1.5;" vertex="1" parent="1"><mxGeometry x="303" y="168" width="160" height="56" as="geometry"/></mxCell></object><object id="gw" label="&lt;span style=&quot;font-weight:600&quot;&gt;API gateway&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-size:11px;color:#64748B&quot;&gt;Envoy&lt;/span&gt;" aiviz_kind="service" aiviz_label="API gateway" aiviz_tech="Envoy" aiviz_auto="287,40,160,56"><mxCell style="rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;" vertex="1" parent="vpc"><mxGeometry x="287" y="40" width="160" height="56" as="geometry"/></mxCell></object><object id="api" label="&lt;span style=&quot;font-weight:600&quot;&gt;Checkout API&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-size:11px;color:#64748B&quot;&gt;Go&lt;/span&gt;" aiviz_kind="service" aiviz_label="Checkout API" aiviz_tech="Go" aiviz_auto="287,152,160,56"><mxCell style="rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;" vertex="1" parent="vpc"><mxGeometry x="287" y="152" width="160" height="56" as="geometry"/></mxCell></object><object id="worker" label="&lt;span style=&quot;font-weight:600&quot;&gt;Fulfillment worker&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-size:11px;color:#64748B&quot;&gt;Go&lt;/span&gt;" aiviz_kind="service" aiviz_label="Fulfillment worker" aiviz_tech="Go" aiviz_auto="303,386,160,56"><mxCell style="rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;" vertex="1" parent="vpc"><mxGeometry x="303" y="386" width="160" height="56" as="geometry"/></mxCell></object><object id="queue" label="&lt;span style=&quot;font-weight:600&quot;&gt;order-events&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-size:11px;color:#64748B&quot;&gt;Kafka&lt;/span&gt;" aiviz_kind="queue" aiviz_label="order-events" aiviz_tech="Kafka" aiviz_auto="303,274,160,56"><mxCell style="rounded=1;arcSize=50;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#FFF7ED;strokeColor=#D97706;strokeWidth=1.5;" vertex="1" parent="vpc"><mxGeometry x="303" y="274" width="160" height="56" as="geometry"/></mxCell></object><object id="db" label="&lt;span style=&quot;font-weight:600&quot;&gt;Orders&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-size:11px;color:#64748B&quot;&gt;Postgres&lt;/span&gt;" aiviz_kind="database" aiviz_label="Orders" aiviz_tech="Postgres" aiviz_auto="200,40,160,72"><mxCell style="shape=cylinder3;boundedLbl=1;backgroundOutline=1;size=8;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#ECFDF5;strokeColor=#059669;strokeWidth=1.5;" vertex="1" parent="data"><mxGeometry x="200" y="40" width="160" height="72" as="geometry"/></mxCell></object><object id="cache" label="&lt;span style=&quot;font-weight:600&quot;&gt;Session cache&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-size:11px;color:#64748B&quot;&gt;Redis&lt;/span&gt;" aiviz_kind="cache" aiviz_label="Session cache" aiviz_tech="Redis" aiviz_auto="20,40,160,56"><mxCell style="rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#ECFDF5;strokeColor=#059669;strokeWidth=1.5;" vertex="1" parent="data"><mxGeometry x="20" y="40" width="160" height="56" as="geometry"/></mxCell></object><object id="stripe" label="&lt;span style=&quot;font-weight:600&quot;&gt;Stripe&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-size:11px;color:#64748B&quot;&gt;Payments API&lt;/span&gt;" aiviz_kind="external" aiviz_label="Stripe" aiviz_tech="Payments API" aiviz_auto="478,1113,160,56"><mxCell style="rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#F8FAFC;strokeColor=#94A3B8;strokeWidth=1.5;dashed=1;dashPattern=6 4;" vertex="1" parent="1"><mxGeometry x="478" y="1113" width="160" height="56" as="geometry"/></mxCell></object><object id="email" label="&lt;span style=&quot;font-weight:600&quot;&gt;SendGrid&lt;/span&gt;&lt;br&gt;&lt;span style=&quot;font-size:11px;color:#64748B&quot;&gt;Email&lt;/span&gt;" aiviz_kind="external" aiviz_label="SendGrid" aiviz_tech="Email" aiviz_auto="278,1113,160,56"><mxCell style="rounded=1;absoluteArcSize=1;arcSize=16;html=1;whiteSpace=wrap;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;fillColor=#F8FAFC;strokeColor=#94A3B8;strokeWidth=1.5;dashed=1;dashPattern=6 4;" vertex="1" parent="1"><mxGeometry x="278" y="1113" width="160" height="56" as="geometry"/></mxCell></object><object id="e_user__web" label="browses" aiviz_edge="user-&gt;web" aiviz_auto=""><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="user" target="web"><mxGeometry relative="1" as="geometry"/></mxCell></object><object id="e_web__gw" label="HTTPS" aiviz_edge="web-&gt;gw" aiviz_auto=""><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="web" target="gw"><mxGeometry x="-0.287" relative="1" as="geometry"/></mxCell></object><object id="e_gw__api" label="gRPC" aiviz_edge="gw-&gt;api" aiviz_auto=""><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="gw" target="api"><mxGeometry relative="1" as="geometry"/></mxCell></object><object id="e_api__cache" label="read session" aiviz_edge="api-&gt;cache" aiviz_auto="335,559 136,559"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.2;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="api" target="cache"><mxGeometry x="0.308" relative="1" as="geometry"><Array as="points"><mxPoint x="335" y="559"/><mxPoint x="136" y="559"/></Array></mxGeometry></mxCell></object><object id="e_api__db" label="SQL" aiviz_edge="api-&gt;db" aiviz_auto="367,569 249,569 249,829 289,829"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.4;exitY=1;exitDx=0;exitDy=0;entryX=0.333;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="api" target="db"><mxGeometry x="0.087" relative="1" as="geometry"><Array as="points"><mxPoint x="367" y="569"/><mxPoint x="249" y="569"/><mxPoint x="249" y="829"/><mxPoint x="289" y="829"/></Array></mxGeometry></mxCell></object><object id="e_api__stripe" label="charge" aiviz_edge="api-&gt;stripe" aiviz_auto="431,559 489,559 489,1021 558,1021"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.8;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="api" target="stripe"><mxGeometry x="0.838" relative="1" as="geometry"><Array as="points"><mxPoint x="431" y="559"/><mxPoint x="489" y="559"/><mxPoint x="489" y="1021"/><mxPoint x="558" y="1021"/></Array></mxGeometry></mxCell></object><object id="e_api__queue" label="OrderPlaced" aiviz_edge="api-&gt;queue" aiviz_auto=""><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;dashed=1;dashPattern=6 4;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.6;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="api" target="queue"><mxGeometry x="0.152" relative="1" as="geometry"/></mxCell></object><object id="e_queue__worker" label="consume" aiviz_edge="queue-&gt;worker" aiviz_auto=""><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;dashed=1;dashPattern=6 4;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="queue" target="worker"><mxGeometry relative="1" as="geometry"/></mxCell></object><object id="e_worker__db" label="update status" aiviz_edge="worker-&gt;db" aiviz_auto="373,793 343,793"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.333;exitY=1;exitDx=0;exitDy=0;entryX=0.667;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="worker" target="db"><mxGeometry x="-0.115" relative="1" as="geometry"><Array as="points"><mxPoint x="373" y="793"/><mxPoint x="343" y="793"/></Array></mxGeometry></mxCell></object><object id="e_worker__email" label="receipt" aiviz_edge="worker-&gt;email" aiviz_auto="426,1021 358,1021"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=1;arcSize=12;html=1;strokeColor=#64748B;strokeWidth=1.5;endArrow=blockThin;endFill=1;endSize=7;startArrow=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.667;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="worker" target="email"><mxGeometry x="0.719" relative="1" as="geometry"><Array as="points"><mxPoint x="426" y="1021"/><mxPoint x="358" y="1021"/></Array></mxGeometry></mxCell></object></root></mxGraphModel></diagram></mxfile>"><defs/><rect fill="#FFFFFF" width="100%" height="100%" x="0" y="0" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="vpc"><g transform="translate(0.5,0.5)"><rect x="16" y="341" width="494" height="655" rx="10" ry="10" fill="#f8fafc" stroke="#cbd5e1" stroke-dasharray="4 4" pointer-events="all" style="fill: light-dark(rgb(248, 250, 252), rgb(21, 23, 25)); stroke: light-dark(rgb(203, 213, 225), rgb(47, 56, 66));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 478px; height: 1px; padding-top: 354px; margin-left: 32px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #64748B; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#64748B, #7e8c9f); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">Production VPC</div></div></div></foreignObject><text x="32" y="365" fill="#64748B" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" font-weight="bold" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">Production VPC</text></switch></g></g><g data-cell-id="data"><g transform="translate(0.5,0.5)"><rect x="36" y="844" width="380" height="132" rx="10" ry="10" fill="#f8fafc" stroke="#cbd5e1" stroke-dasharray="4 4" pointer-events="all" style="fill: light-dark(rgb(248, 250, 252), rgb(21, 23, 25)); stroke: light-dark(rgb(203, 213, 225), rgb(47, 56, 66));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 364px; height: 1px; padding-top: 857px; margin-left: 52px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #64748B; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#64748B, #7e8c9f); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">Data tier</div></div></div></foreignObject><text x="52" y="868" fill="#64748B" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" font-weight="bold" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">Data tier</text></switch></g></g><g data-cell-id="db"><g><path d="M 236 892 C 236 887.58 271.82 884 316 884 C 337.22 884 357.57 884.84 372.57 886.34 C 387.57 887.84 396 889.88 396 892 L 396 948 C 396 952.42 360.18 956 316 956 C 271.82 956 236 952.42 236 948 Z" fill="#ecfdf5" stroke="#059669" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(236, 253, 245), rgb(13, 27, 21)); stroke: light-dark(rgb(5, 150, 105), rgb(42, 167, 128));"/><path d="M 396 892 C 396 896.42 360.18 900 316 900 C 271.82 900 236 896.42 236 892" fill="none" stroke="#059669" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(5, 150, 105), rgb(42, 167, 128));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 927px; margin-left: 237px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Orders</span><br /><span style="font-size: 11px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">Postgres</span></div></div></div></foreignObject><text x="316" y="923" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));"><tspan x="316" y="923">Orders</tspan><tspan x="316" y="939">Postgres</tspan></text></switch></g></g></g><g data-cell-id="cache"><g><rect x="56" y="884" width="160" height="56" rx="8" ry="8" fill="#ecfdf5" stroke="#059669" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(236, 253, 245), rgb(13, 27, 21)); stroke: light-dark(rgb(5, 150, 105), rgb(42, 167, 128));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 912px; margin-left: 57px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Session cache</span><br /><span style="font-size: 11px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">Redis</span></div></div></div></foreignObject><text x="136" y="908" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));"><tspan x="136" y="908">Session cache</tspan><tspan x="136" y="924">Redis</tspan></text></switch></g></g></g></g><g data-cell-id="gw"><g><rect x="303" y="381" width="160" height="56" rx="8" ry="8" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 409px; margin-left: 304px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">API gateway</span><br /><span style="font-size: 11px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">Envoy</span></div></div></div></foreignObject><text x="383" y="405" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));"><tspan x="383" y="405">API gateway</tspan><tspan x="383" y="421">Envoy</tspan></text></switch></g></g></g><g data-cell-id="api"><g><rect x="303" y="493" width="160" height="56" rx="8" ry="8" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 521px; margin-left: 304px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Checkout API</span><br /><span style="font-size: 11px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">Go</span></div></div></div></foreignObject><text x="383" y="517" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));"><tspan x="383" y="517">Checkout API</tspan><tspan x="383" y="533">Go</tspan></text></switch></g></g></g><g data-cell-id="worker"><g><rect x="319" y="727" width="160" height="56" rx="8" ry="8" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 755px; margin-left: 320px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Fulfillment worker</span><br /><span style="font-size: 11px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">Go</span></div></div></div></foreignObject><text x="399" y="751" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));"><tspan x="399" y="751">Fulfillment worker</tspan><tspan x="399" y="767">Go</tspan></text></switch></g></g></g><g data-cell-id="queue"><g><rect x="319" y="615" width="160" height="56" rx="28" ry="28" fill="#fff7ed" stroke="#d97706" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(255, 247, 237), rgb(30, 23, 15)); stroke: light-dark(rgb(217, 119, 6), rgb(197, 113, 16));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 643px; margin-left: 320px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">order-events</span><br /><span style="font-size: 11px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">Kafka</span></div></div></div></foreignObject><text x="399" y="639" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));"><tspan x="399" y="639">order-events</tspan><tspan x="399" y="655">Kafka</tspan></text></switch></g></g></g></g><g data-cell-id="user"><g><rect x="303" y="16" width="160" height="40" rx="8" ry="8" fill="#fdf4ff" stroke="#c026d3" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(253, 244, 255), rgb(30, 23, 32)); stroke: light-dark(rgb(192, 38, 211), rgb(255, 127, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 36px; margin-left: 304px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Shopper</span></div></div></div></foreignObject><text x="383" y="40" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Shopper</text></switch></g></g></g><g data-cell-id="web"><g><rect x="303" y="168" width="160" height="56" rx="8" ry="8" fill="#f0f9ff" stroke="#0284c7" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(240, 249, 255), rgb(18, 26, 31)); stroke: light-dark(rgb(2, 132, 199), rgb(52, 163, 221));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 196px; margin-left: 304px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Web app</span><br /><span style="font-size: 11px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">Next.js</span></div></div></div></foreignObject><text x="383" y="192" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));"><tspan x="383" y="192">Web app</tspan><tspan x="383" y="208">Next.js</tspan></text></switch></g></g></g><g data-cell-id="stripe"><g><rect x="478" y="1113" width="160" height="56" rx="8" ry="8" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.5" stroke-dasharray="9 6" pointer-events="all" style="fill: light-dark(rgb(248, 250, 252), rgb(21, 23, 25)); stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 1141px; margin-left: 479px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Stripe</span><br /><span style="font-size: 11px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">Payments API</span></div></div></div></foreignObject><text x="558" y="1137" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));"><tspan x="558" y="1137">Stripe</tspan><tspan x="558" y="1153">Payments API</tspan></text></switch></g></g></g><g data-cell-id="email"><g><rect x="278" y="1113" width="160" height="56" rx="8" ry="8" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.5" stroke-dasharray="9 6" pointer-events="all" style="fill: light-dark(rgb(248, 250, 252), rgb(21, 23, 25)); stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 1141px; margin-left: 279px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">SendGrid</span><br /><span style="font-size: 11px; color: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">Email</span></div></div></div></foreignObject><text x="358" y="1137" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));"><tspan x="358" y="1137">SendGrid</tspan><tspan x="358" y="1153">Email</tspan></text></switch></g></g></g><g data-cell-id="e_user__web"><g><path d="M 383 56 L 383 157.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 383 166.32 L 380.17 157.82 L 385.83 157.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 112px; margin-left: 383px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">browses</div></div></div></foreignObject><text x="383" y="115" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">browses</text></switch></g></g></g><g data-cell-id="e_web__gw"><g><path d="M 383 224 L 383 370.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 383 379.32 L 380.17 370.82 L 385.83 370.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 280px; margin-left: 383px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">HTTPS</div></div></div></foreignObject><text x="383" y="283" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">HTTPS</text></switch></g></g></g><g data-cell-id="e_gw__api"><g><path d="M 383 437 L 383 482.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 383 491.32 L 380.17 482.82 L 385.83 482.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 465px; margin-left: 383px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">gRPC</div></div></div></foreignObject><text x="383" y="468" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">gRPC</text></switch></g></g></g><g data-cell-id="e_api__cache"><g><path d="M 335 549 L 335 554 Q 335 559 329 559 L 142 559 Q 136 559 136 565 L 136 873.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 136 882.32 L 133.17 873.82 L 138.83 873.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 699px; margin-left: 136px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">read session</div></div></div></foreignObject><text x="136" y="702" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">read session</text></switch></g></g></g><g data-cell-id="e_api__db"><g><path d="M 367 549 L 367 563 Q 367 569 361 569 L 255 569 Q 249 569 249 575 L 249 823 Q 249 829 255 829 L 283.3 829 Q 289.3 829 289.3 835 L 289.28 873.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 289.28 882.32 L 286.45 873.82 L 292.12 873.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 699px; margin-left: 249px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">SQL</div></div></div></foreignObject><text x="249" y="702" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">SQL</text></switch></g></g></g><g data-cell-id="e_api__stripe"><g><path d="M 431 549 L 431 554 Q 431 559 437 559 L 483 559 Q 489 559 489 565 L 489 1015 Q 489 1021 495 1021 L 552 1021 Q 558 1021 558 1027 L 558 1102.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 558 1111.32 L 555.17 1102.82 L 560.83 1102.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1057px; margin-left: 558px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">charge</div></div></div></foreignObject><text x="558" y="1060" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">charge</text></switch></g></g></g><g data-cell-id="e_api__queue"><g><path d="M 399 549 L 399 604.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="9 6" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 399 613.32 L 396.17 604.82 L 401.83 604.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 587px; margin-left: 399px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">OrderPlaced</div></div></div></foreignObject><text x="399" y="590" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">OrderPlaced</text></switch></g></g></g><g data-cell-id="e_queue__worker"><g><path d="M 399 671 L 399 716.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="9 6" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 399 725.32 L 396.17 716.82 L 401.83 716.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 699px; margin-left: 399px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">consume</div></div></div></foreignObject><text x="399" y="702" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">consume</text></switch></g></g></g><g data-cell-id="e_worker__db"><g><path d="M 372.28 783 L 372.29 788 Q 372.3 793 366.3 793 L 348.7 793 Q 342.7 793 342.7 799 L 342.72 873.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 342.72 882.32 L 339.88 873.82 L 345.55 873.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 811px; margin-left: 343px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">update status</div></div></div></foreignObject><text x="343" y="815" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">update status</text></switch></g></g></g><g data-cell-id="e_worker__email"><g><path d="M 425.72 783 L 425.7 1015 Q 425.7 1021 419.7 1021 L 364 1021 Q 358 1021 358 1027 L 358 1102.82" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 358 1111.32 L 355.17 1102.82 L 360.83 1102.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 1057px; margin-left: 358px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">receipt</div></div></div></foreignObject><text x="358" y="1061" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">receipt</text></switch></g></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<!-- Do not edit this file with editors other than draw.io -->
|
|
3
|
-
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
-
<svg xmlns="http://www.w3.org/2000/svg" style="background: #FFFFFF; background-color: light-dark(#FFFFFF, #121212);" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="867px" height="794px" viewBox="0 0 867 794" content="<mxfile host="aiviz" agent="aiviz"><diagram id="aiviz" name="Card payment"><mxGraphModel grid="1" gridSize="8" guides="1" tooltips="1" connect="1" arrows="1" page="0" background="#FFFFFF" math="0" shadow="0"><root><object id="0" label="" aiviz_version="1" aiviz_type="sequence" aiviz_direction="auto" aiviz_title="Card payment"><mxCell/></object><mxCell id="1" parent="0"/><object id="web" label="&lt;span style=&quot;font-weight:600&quot;&gt;Web app&lt;/span&gt;" aiviz_kind="client" aiviz_label="Web app" aiviz_auto="200,24,128,760"><mxCell style="shape=umlLifeline;perimeter=lifelinePerimeter;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;size=48;html=1;whiteSpace=wrap;rounded=1;absoluteArcSize=1;arcSize=16;fillColor=#F0F9FF;strokeColor=#0284C7;strokeWidth=1.5;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;" vertex="1" parent="1"><mxGeometry x="200" y="24" width="128" height="760" as="geometry"/></mxCell></object><object id="api" label="&lt;span style=&quot;font-weight:600&quot;&gt;Checkout API&lt;/span&gt;" aiviz_kind="service" aiviz_label="Checkout API" aiviz_auto="360,24,128,760"><mxCell style="shape=umlLifeline;perimeter=lifelinePerimeter;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;size=48;html=1;whiteSpace=wrap;rounded=1;absoluteArcSize=1;arcSize=16;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;" vertex="1" parent="1"><mxGeometry x="360" y="24" width="128" height="760" as="geometry"/></mxCell></object><object id="stripe" label="&lt;span style=&quot;font-weight:600&quot;&gt;Stripe&lt;/span&gt;" aiviz_kind="external" aiviz_label="Stripe" aiviz_auto="568,24,128,760"><mxCell style="shape=umlLifeline;perimeter=lifelinePerimeter;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;size=48;html=1;whiteSpace=wrap;rounded=1;absoluteArcSize=1;arcSize=16;fillColor=#F8FAFC;strokeColor=#94A3B8;strokeWidth=1.5;dashed=1;dashPattern=6 4;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;" vertex="1" parent="1"><mxGeometry x="568" y="24" width="128" height="760" as="geometry"/></mxCell></object><object id="db" label="&lt;span style=&quot;font-weight:600&quot;&gt;Orders DB&lt;/span&gt;" aiviz_kind="database" aiviz_label="Orders DB" aiviz_auto="728,24,128,760"><mxCell style="shape=umlLifeline;perimeter=lifelinePerimeter;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;size=48;html=1;whiteSpace=wrap;rounded=1;absoluteArcSize=1;arcSize=16;fillColor=#ECFDF5;strokeColor=#059669;strokeWidth=1.5;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;" vertex="1" parent="1"><mxGeometry x="728" y="24" width="128" height="760" as="geometry"/></mxCell></object><object id="user" label="&lt;span style=&quot;font-weight:600&quot;&gt;Shopper&lt;/span&gt;" aiviz_kind="person" aiviz_label="Shopper" aiviz_auto="40,24,128,760"><mxCell style="shape=umlLifeline;perimeter=lifelinePerimeter;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;size=48;html=1;whiteSpace=wrap;rounded=1;absoluteArcSize=1;arcSize=16;fillColor=#FDF4FF;strokeColor=#C026D3;strokeWidth=1.5;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=13;fontColor=#0F172A;" vertex="1" parent="1"><mxGeometry x="40" y="24" width="128" height="760" as="geometry"/></mxCell></object><object id="bar_db_1" label="" aiviz_type="bar"><mxCell style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;fillColor=#ECFDF5;strokeColor=#059669;strokeWidth=1.5;" vertex="1" parent="db"><mxGeometry x="59" y="150" width="10" height="52" as="geometry"/></mxCell></object><object id="bar_stripe_2" label="" aiviz_type="bar"><mxCell style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;fillColor=#F8FAFC;strokeColor=#94A3B8;strokeWidth=1.5;" vertex="1" parent="stripe"><mxGeometry x="59" y="230" width="10" height="52" as="geometry"/></mxCell></object><object id="bar_api_3" label="" aiviz_type="bar"><mxCell style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;fillColor=#EEF2FF;strokeColor=#4F46E5;strokeWidth=1.5;" vertex="1" parent="api"><mxGeometry x="59" y="110" width="10" height="212" as="geometry"/></mxCell></object><object id="bar_stripe_4" label="" aiviz_type="bar"><mxCell style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;fillColor=#F8FAFC;strokeColor=#94A3B8;strokeWidth=1.5;" vertex="1" parent="stripe"><mxGeometry x="59" y="350" width="10" height="244" as="geometry"/></mxCell></object><object id="bar_web_5" label="" aiviz_type="bar"><mxCell style="html=1;points=[];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;fillColor=#F0F9FF;strokeColor=#0284C7;strokeWidth=1.5;" vertex="1" parent="web"><mxGeometry x="59" y="70" width="10" height="640" as="geometry"/></mxCell></object><object id="frame_1" label="alt" aiviz_type="frame" aiviz_frame="alt"><mxCell style="shape=umlFrame;whiteSpace=wrap;html=1;width=56;height=22;boundedLbl=1;verticalAlign=middle;align=center;fillColor=none;strokeColor=#64748B;strokeWidth=1;swimlaneFillColor=none;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#64748B;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="184" y="416" width="688" height="292" as="geometry"/></mxCell></object><object id="frame_1_g0" label="[succeeded]" aiviz_type="guard" aiviz_guard="frame_1:0"><mxCell style="text;html=1;align=left;verticalAlign=middle;labelBackgroundColor=#FFFFFF;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#64748B;" vertex="1" parent="1"><mxGeometry x="248" y="416" width="87" height="22" as="geometry"/></mxCell></object><object id="frame_1_g1" label="[declined]" aiviz_type="guard" aiviz_guard="frame_1:1"><mxCell style="text;html=1;align=left;verticalAlign=middle;labelBackgroundColor=#FFFFFF;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#64748B;" vertex="1" parent="1"><mxGeometry x="248" y="584" width="80" height="22" as="geometry"/></mxCell></object><object id="note_11" label="idempotent on event id" aiviz_type="note" aiviz_note="over" aiviz_over="api,db"><mxCell style="shape=note;size=12;whiteSpace=wrap;html=1;fillColor=#FEFCE8;strokeColor=#E5D27A;strokeWidth=1;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#0F172A;align=left;spacingLeft=8;spacingRight=8;" vertex="1" parent="1"><mxGeometry x="400" y="530" width="416" height="28" as="geometry"/></mxCell></object><object id="frame_1_s1" label="" aiviz_type="sep" aiviz_sep="frame_1:1"><mxCell style="endArrow=none;dashed=1;dashPattern=4 4;html=1;strokeColor=#64748B;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="184" y="582" as="sourcePoint"/><mxPoint x="872" y="582" as="targetPoint"/></mxGeometry></mxCell></object><object id="m_0" label="Click &quot;Pay&quot;" aiviz_msg="sync"><mxCell style="html=1;verticalAlign=bottom;endArrow=blockThin;endFill=1;endSize=7;strokeWidth=1.5;strokeColor=#64748B;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=0.1000;exitDx=0;exitDy=0;entryX=0;entryY=0.0094;entryDx=0;entryDy=0;" edge="1" parent="1" source="user" target="bar_web_5"><mxGeometry relative="1" as="geometry"/></mxCell></object><object id="m_1" label="POST /checkout" aiviz_msg="sync"><mxCell style="html=1;verticalAlign=bottom;endArrow=blockThin;endFill=1;endSize=7;strokeWidth=1.5;strokeColor=#64748B;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.0719;exitDx=0;exitDy=0;entryX=0;entryY=0.0283;entryDx=0;entryDy=0;" edge="1" parent="1" source="bar_web_5" target="bar_api_3"><mxGeometry relative="1" as="geometry"/></mxCell></object><object id="m_2" label="insert order (pending)" aiviz_msg="sync"><mxCell style="html=1;verticalAlign=bottom;endArrow=blockThin;endFill=1;endSize=7;strokeWidth=1.5;strokeColor=#64748B;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.2170;exitDx=0;exitDy=0;entryX=0;entryY=0.1154;entryDx=0;entryDy=0;" edge="1" parent="1" source="bar_api_3" target="bar_db_1"><mxGeometry relative="1" as="geometry"/></mxCell></object><object id="m_3" label="order id" aiviz_msg="reply"><mxCell style="html=1;verticalAlign=bottom;endArrow=open;endFill=0;endSize=7;strokeWidth=1.5;strokeColor=#64748B;dashed=1;dashPattern=6 4;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0;exitY=0.8846;exitDx=0;exitDy=0;entryX=1;entryY=0.4057;entryDx=0;entryDy=0;" edge="1" parent="1" source="bar_db_1" target="bar_api_3"><mxGeometry relative="1" as="geometry"/></mxCell></object><object id="m_4" label="create PaymentIntent" aiviz_msg="sync"><mxCell style="html=1;verticalAlign=bottom;endArrow=blockThin;endFill=1;endSize=7;strokeWidth=1.5;strokeColor=#64748B;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.5943;exitDx=0;exitDy=0;entryX=0;entryY=0.1154;entryDx=0;entryDy=0;" edge="1" parent="1" source="bar_api_3" target="bar_stripe_2"><mxGeometry relative="1" as="geometry"/></mxCell></object><object id="m_5" label="client_secret" aiviz_msg="reply"><mxCell style="html=1;verticalAlign=bottom;endArrow=open;endFill=0;endSize=7;strokeWidth=1.5;strokeColor=#64748B;dashed=1;dashPattern=6 4;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0;exitY=0.8846;exitDx=0;exitDy=0;entryX=1;entryY=0.7830;entryDx=0;entryDy=0;" edge="1" parent="1" source="bar_stripe_2" target="bar_api_3"><mxGeometry relative="1" as="geometry"/></mxCell></object><object id="m_6" label="client_secret" aiviz_msg="reply"><mxCell style="html=1;verticalAlign=bottom;endArrow=open;endFill=0;endSize=7;strokeWidth=1.5;strokeColor=#64748B;dashed=1;dashPattern=6 4;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0;exitY=0.9717;exitDx=0;exitDy=0;entryX=1;entryY=0.3844;entryDx=0;entryDy=0;" edge="1" parent="1" source="bar_api_3" target="bar_web_5"><mxGeometry relative="1" as="geometry"/></mxCell></object><object id="m_7" label="confirmCardPayment" aiviz_msg="sync"><mxCell style="html=1;verticalAlign=bottom;endArrow=blockThin;endFill=1;endSize=7;strokeWidth=1.5;strokeColor=#64748B;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=1;exitY=0.4469;exitDx=0;exitDy=0;entryX=0;entryY=0.0246;entryDx=0;entryDy=0;" edge="1" parent="1" source="bar_web_5" target="bar_stripe_4"><mxGeometry relative="1" as="geometry"/></mxCell></object><object id="m_9" label="webhook payment_succeeded" aiviz_msg="async"><mxCell style="html=1;verticalAlign=bottom;endArrow=open;endFill=0;endSize=7;strokeWidth=1.5;strokeColor=#64748B;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0;exitY=0.3279;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5658;entryDx=0;entryDy=0;" edge="1" parent="1" source="bar_stripe_4" target="api"><mxGeometry relative="1" as="geometry"/></mxCell></object><object id="m_10" label="mark paid" aiviz_msg="sync"><mxCell style="html=1;verticalAlign=bottom;endArrow=blockThin;endFill=1;endSize=7;strokeWidth=1.5;strokeColor=#64748B;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=0.6184;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6184;entryDx=0;entryDy=0;" edge="1" parent="1" source="api" target="db"><mxGeometry relative="1" as="geometry"/></mxCell></object><object id="m_13" label="card_declined" aiviz_msg="reply"><mxCell style="html=1;verticalAlign=bottom;endArrow=open;endFill=0;endSize=7;strokeWidth=1.5;strokeColor=#64748B;dashed=1;dashPattern=6 4;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0;exitY=0.9754;exitDx=0;exitDy=0;entryX=1;entryY=0.8094;entryDx=0;entryDy=0;" edge="1" parent="1" source="bar_stripe_4" target="bar_web_5"><mxGeometry relative="1" as="geometry"/></mxCell></object><object id="m_14" label="show error" aiviz_msg="sync"><mxCell style="html=1;verticalAlign=bottom;endArrow=blockThin;endFill=1;endSize=7;strokeWidth=1.5;strokeColor=#64748B;edgeStyle=orthogonalEdgeStyle;rounded=1;align=left;spacingLeft=6;verticalAlign=middle;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0.5;exitY=0.8263;entryX=0.5;entryY=0.8526;exitDx=0;exitDy=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="web" target="web"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="304" y="652"/><mxPoint x="304" y="672"/></Array></mxGeometry></mxCell></object><object id="m_16" label="result page" aiviz_msg="reply"><mxCell style="html=1;verticalAlign=bottom;endArrow=open;endFill=0;endSize=7;strokeWidth=1.5;strokeColor=#64748B;dashed=1;dashPattern=6 4;fontFamily=-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif;fontSize=11;fontColor=#475569;labelBackgroundColor=#FFFFFF;exitX=0;exitY=0.9906;exitDx=0;exitDy=0;entryX=0.5;entryY=0.9263;entryDx=0;entryDy=0;" edge="1" parent="1" source="bar_web_5" target="user"><mxGeometry relative="1" as="geometry"/></mxCell></object></root></mxGraphModel></diagram></mxfile>"><defs/><rect fill="#FFFFFF" width="100%" height="100%" x="0" y="0" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));"/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="web"><g><rect x="176" y="16" width="128" height="48" rx="8" ry="8" fill="#f0f9ff" stroke="#0284c7" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(240, 249, 255), rgb(18, 26, 31)); stroke: light-dark(rgb(2, 132, 199), rgb(52, 163, 221));"/><path d="M 240 64 L 240 776" fill="none" stroke="#0284c7" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="4.5 4.5" pointer-events="all" style="stroke: light-dark(rgb(2, 132, 199), rgb(52, 163, 221));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 40px; margin-left: 177px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Web app</span></div></div></div></foreignObject><text x="240" y="44" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Web app</text></switch></g></g><g data-cell-id="bar_web_5"><g><rect x="235" y="86" width="10" height="640" fill="#f0f9ff" stroke="#0284c7" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(240, 249, 255), rgb(18, 26, 31)); stroke: light-dark(rgb(2, 132, 199), rgb(52, 163, 221));"/></g></g></g><g data-cell-id="api"><g><rect x="336" y="16" width="128" height="48" rx="8" ry="8" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/><path d="M 400 64 L 400 776" fill="none" stroke="#4f46e5" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="4.5 4.5" pointer-events="all" style="stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 40px; margin-left: 337px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Checkout API</span></div></div></div></foreignObject><text x="400" y="44" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Checkout API</text></switch></g></g><g data-cell-id="bar_api_3"><g><rect x="395" y="126" width="10" height="212" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(238, 242, 255), rgb(26, 29, 40)); stroke: light-dark(rgb(79, 70, 229), rgb(162, 154, 255));"/></g></g></g><g data-cell-id="stripe"><g><rect x="544" y="16" width="128" height="48" rx="8" ry="8" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.5" stroke-dasharray="9 6" pointer-events="all" style="fill: light-dark(rgb(248, 250, 252), rgb(21, 23, 25)); stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/><path d="M 608 64 L 608 776" fill="none" stroke="#94a3b8" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="9 6" pointer-events="all" style="stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 40px; margin-left: 545px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Stripe</span></div></div></div></foreignObject><text x="608" y="44" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Stripe</text></switch></g></g><g data-cell-id="bar_stripe_2"><g><rect x="603" y="246" width="10" height="52" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(248, 250, 252), rgb(21, 23, 25)); stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/></g></g><g data-cell-id="bar_stripe_4"><g><rect x="603" y="366" width="10" height="244" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(248, 250, 252), rgb(21, 23, 25)); stroke: light-dark(rgb(148, 163, 184), rgb(87, 100, 118));"/></g></g></g><g data-cell-id="db"><g><rect x="704" y="16" width="128" height="48" rx="8" ry="8" fill="#ecfdf5" stroke="#059669" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(236, 253, 245), rgb(13, 27, 21)); stroke: light-dark(rgb(5, 150, 105), rgb(42, 167, 128));"/><path d="M 768 64 L 768 776" fill="none" stroke="#059669" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="4.5 4.5" pointer-events="all" style="stroke: light-dark(rgb(5, 150, 105), rgb(42, 167, 128));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 40px; margin-left: 705px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Orders DB</span></div></div></div></foreignObject><text x="768" y="44" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Orders DB</text></switch></g></g><g data-cell-id="bar_db_1"><g><rect x="763" y="166" width="10" height="52" fill="#ecfdf5" stroke="#059669" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(236, 253, 245), rgb(13, 27, 21)); stroke: light-dark(rgb(5, 150, 105), rgb(42, 167, 128));"/></g></g></g><g data-cell-id="user"><g><rect x="16" y="16" width="128" height="48" rx="8" ry="8" fill="#fdf4ff" stroke="#c026d3" stroke-width="1.5" pointer-events="all" style="fill: light-dark(rgb(253, 244, 255), rgb(30, 23, 32)); stroke: light-dark(rgb(192, 38, 211), rgb(255, 127, 255));"/><path d="M 80 64 L 80 776" fill="none" stroke="#c026d3" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="4.5 4.5" pointer-events="all" style="stroke: light-dark(rgb(192, 38, 211), rgb(255, 127, 255));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 126px; height: 1px; padding-top: 40px; margin-left: 17px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #0F172A; "><div style="display: inline-block; font-size: 13px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-weight:600">Shopper</span></div></div></div></foreignObject><text x="80" y="44" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="13px" text-anchor="middle" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">Shopper</text></switch></g></g></g><g data-cell-id="frame_1"><g transform="translate(0.5,0.5)"><path d="M 160 408 L 216 408 L 216 415 L 206 430 L 160 430 Z" fill="none" stroke="#64748b" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 216 408 L 848 408 L 848 700 L 160 700 L 160 430" fill="none" stroke="#64748b" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 54px; height: 1px; padding-top: 419px; margin-left: 161px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #64748B; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#64748B, #7e8c9f); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">alt</div></div></div></foreignObject><text x="188" y="422" fill="#64748B" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" font-weight="bold" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">alt</text></switch></g></g></g><g data-cell-id="frame_1_g0"><g><rect x="224" y="408" width="87" height="22" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 419px; margin-left: 226px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #64748B; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#64748B, #7e8c9f); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">[succeeded]</div></div></div></foreignObject><text x="226" y="422" fill="#64748B" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">[succeeded]</text></switch></g></g></g><g data-cell-id="frame_1_g1"><g><rect x="224" y="576" width="80" height="22" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 587px; margin-left: 226px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #64748B; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#64748B, #7e8c9f); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">[declined]</div></div></div></foreignObject><text x="226" y="590" fill="#64748B" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));">[declined]</text></switch></g></g></g><g data-cell-id="note_11"><g transform="translate(0.5,0.5)"><path d="M 376 522 L 780 522 L 792 534 L 792 550 L 376 550 L 376 522 Z" fill="#fefce8" stroke="#e5d27a" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(254, 252, 232), rgb(23, 22, 4)); stroke: light-dark(rgb(229, 210, 122), rgb(78, 61, 0));"/><path d="M 780 522 L 780 534 L 792 534" fill="none" stroke="#e5d27a" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(229, 210, 122), rgb(78, 61, 0));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 398px; height: 1px; padding-top: 536px; margin-left: 386px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #0F172A; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#0F172A, #d3daea); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">idempotent on event id</div></div></div></foreignObject><text x="386" y="539" fill="#0F172A" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" style="fill: light-dark(rgb(15, 23, 42), rgb(211, 218, 234));">idempotent on event id</text></switch></g></g></g><g data-cell-id="frame_1_s1"><g transform="translate(0.5,0.5)"><path d="M 160 574 L 848 574" fill="none" stroke="#64748b" stroke-miterlimit="10" stroke-dasharray="4 4" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g></g><g data-cell-id="m_0"><g><path d="M 79.75 92 L 224.82 92.01" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 233.32 92.02 L 224.82 94.85 L 224.82 89.18 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 89px; margin-left: 158px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">Click "Pay"</div></div></div></foreignObject><text x="158" y="89" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">Click "Pay"</text></switch></g></g></g><g data-cell-id="m_1"><g><path d="M 245 132.02 L 384.82 132" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 393.32 132 L 384.82 134.83 L 384.82 129.17 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 129px; margin-left: 320px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">POST /checkout</div></div></div></foreignObject><text x="320" y="129" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">POST /checkout</text></switch></g></g></g><g data-cell-id="m_2"><g><path d="M 405 172 L 752.82 172" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 761.32 172 L 752.82 174.83 L 752.82 169.17 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 169px; margin-left: 584px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">insert order (pending)</div></div></div></foreignObject><text x="584" y="169" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">insert order (pending)</text></switch></g></g></g><g data-cell-id="m_3"><g><path d="M 763 212 L 408.35 212.01" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="9 6" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 415.18 207.76 L 406.68 212.01 L 415.18 216.26" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 209px; margin-left: 584px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">order id</div></div></div></foreignObject><text x="584" y="209" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">order id</text></switch></g></g></g><g data-cell-id="m_4"><g><path d="M 405 251.99 L 592.82 252" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 601.32 252 L 592.82 254.83 L 592.82 249.17 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 249px; margin-left: 504px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">create PaymentIntent</div></div></div></foreignObject><text x="504" y="249" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">create PaymentIntent</text></switch></g></g></g><g data-cell-id="m_5"><g><path d="M 603 292 L 408.35 292" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="9 6" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 415.18 287.75 L 406.68 292 L 415.18 296.25" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 289px; margin-left: 504px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">client_secret</div></div></div></foreignObject><text x="504" y="289" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">client_secret</text></switch></g></g></g><g data-cell-id="m_6"><g><path d="M 395 332 L 248.35 332.02" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="9 6" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 255.18 327.76 L 246.68 332.02 L 255.18 336.26" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 329px; margin-left: 320px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">client_secret</div></div></div></foreignObject><text x="320" y="329" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">client_secret</text></switch></g></g></g><g data-cell-id="m_7"><g><path d="M 245 372.02 L 592.82 372" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 601.32 372 L 592.82 374.84 L 592.82 369.17 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 369px; margin-left: 424px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">confirmCardPayment</div></div></div></foreignObject><text x="424" y="369" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">confirmCardPayment</text></switch></g></g></g><g data-cell-id="m_9"><g><path d="M 603 446.01 L 403.1 446.01" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 409.93 441.76 L 401.43 446.01 L 409.93 450.26" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 443px; margin-left: 501px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">webhook payment_succeeded</div></div></div></foreignObject><text x="501" y="443" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">webhook payment_succeeded</text></switch></g></g></g><g data-cell-id="m_10"><g><path d="M 399.75 485.98 L 757.57 485.98" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 766.07 485.98 L 757.57 488.82 L 757.57 483.15 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 483px; margin-left: 584px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">mark paid</div></div></div></foreignObject><text x="584" y="483" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">mark paid</text></switch></g></g></g><g data-cell-id="m_13"><g><path d="M 603 604 L 248.35 604.02" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="9 6" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 255.18 599.77 L 246.68 604.02 L 255.18 608.27" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 601px; margin-left: 424px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">card_declined</div></div></div></foreignObject><text x="424" y="601" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">card_declined</text></switch></g></g></g><g data-cell-id="m_14"><g><path d="M 239.75 643.99 L 270 644 Q 280 644 280 654 L 280 659 Q 280 664 270 663.99 L 249.93 663.98" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 241.43 663.98 L 249.93 661.15 L 249.93 666.82 Z" fill="#64748b" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="fill: light-dark(rgb(100, 116, 139), rgb(126, 140, 159)); stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 654px; margin-left: 288px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">show error</div></div></div></foreignObject><text x="288" y="657" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">show error</text></switch></g></g></g><g data-cell-id="m_16"><g><path d="M 235 719.98 L 83.1 719.99" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" stroke-dasharray="9 6" pointer-events="stroke" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/><path d="M 89.93 715.74 L 81.43 719.99 L 89.93 724.24" fill="none" stroke="#64748b" stroke-width="1.5" stroke-miterlimit="10" pointer-events="all" style="stroke: light-dark(rgb(100, 116, 139), rgb(126, 140, 159));"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-end; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 717px; margin-left: 157px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #475569; background-color: #FFFFFF; "><div style="display: inline-block; font-size: 11px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; color: light-dark(#475569, #9ba7b8); line-height: 1.2; pointer-events: all; background-color: light-dark(#FFFFFF, #121212); white-space: nowrap; ">result page</div></div></div></foreignObject><text x="157" y="717" fill="#475569" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif" font-size="11px" text-anchor="middle" style="fill: light-dark(rgb(71, 85, 105), rgb(155, 167, 184));">result page</text></switch></g></g></g></g></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.drawio.com/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
|