<mxfile host="app.diagrams.net" agent="architecture-diagram" version="24.0.0">
  <diagram name="Connection Request — Idempotent Flow" id="17-connection-request-sequence">
    <mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1500" pageHeight="1000" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="n.c-a" value="&lt;b&gt;Member A&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#08427b;strokeColor=#073b6f;fontColor=#ffffff;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="60" y="80" width="150" height="800" as="geometry" />
        </mxCell>
        <mxCell id="_plate1" value="" style="rounded=1;arcSize=22;html=1;fillColor=#ffffff;strokeColor=none;movable=0;resizable=0;connectable=0;" vertex="1" parent="n.c-a">
          <mxGeometry x="5" y="13" width="32" height="32" as="geometry" />
        </mxCell>
        <mxCell id="_ico2" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACWklEQVRoge3Zz4tNYRzH8dfIrwmJGcZMIgpJEjZsiA1pLGhK2VDEcpLFWCkrG3tr/8GQHRNWipRhocxmombIaESNjDFj8XTrNHPunXueOfec2zTv+m7Ovd9z3p/uvec8z/eyRLm05Hy+lTiBbuzEFvzGKF6hH0M5XzMXVuAaRjAzTz3BwXI002nHc/OLJ2sKfSW4zqELw7LJJ+te4cYJWoXvdax8pa4WLV7hdp2C89UEthbsrh0/FyierPvF6nM9J/FK/cKqGJFlkQHORvZVYy2OxzTGBtgX2Zf7OWMDdET21aIzpik2wHRkXy3+xTTFBhiN7KvFSExTbIB3kX21eN+Ac1blknxvo9+xvMgA6zGWY4BS1kQ3ImVn1zjaCnZH+MifZpSdXdO4ULR4ko3Cjy9W/lbxynNZh0eyyU/gYhmytTiPD2qLT+EBtuV10bw39XAIZ7BLWHL8wWe8xmPhlrnEoiH2K7RfGI10YgMm8RBv6uhtRY+wfJ7CV3zCC/zIKpIlwBr04oowtErjozD3GRSmFePCTqsNe3EUJ4U712z+4hnuCmOaXOlW39Aqr+oXnjG5cFNYqxclX6kh7Fmo/OUSxJM1jM2x8oeFe3iZAWYwEBtgoAnkK3Uuq/yxJpBO1ttqotW2lD1ZEzeYA9id9kK1AKcb5xLNqbSDaQFasL2xLlHsSDuYFqBN+Kuo2ehKO5gWYHWDRWJJ9YqdCzUNizLAZOEW9ZHqlRZgTGNmnwtlMMube5X/9E3WN2zKEqAFdzTHYm5IWFhWFa1FB44o77nwBS+FrecSTcl/+F0YjmstwYwAAAAASUVORK5CYII=;" vertex="1" parent="n.c-a">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.c-api" value="&lt;b&gt;API layer&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#4a3200;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="230" y="80" width="150" height="800" as="geometry" />
        </mxCell>
        <mxCell id="_ico3" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAABzklEQVRoge2Yu0oDQRSGP41aiBZeOgsDBgSxEbTxAXwAK0EsxFIrC7ESCzvBh7AUGwkWYmMjImgpIjZaiFEQBYlExcRikhA3iTtzsrOTwHwwzbLn7P/vXM5hwNOadAEbwBmwD4wJciwCJ8ARMBOZMk12gELFeAYGDOLnA/HfwGTEGv8lExBQAOYM4g9rxG9LhLRLgoD+Gs8GG4w3mcEyUgNNgzfgGm/ANS1voEMY9wp0Bp7lDOLfizkq+RBq8TilTeOdKSBpWUct8sApqm0RM11MFOxb4hq3YQLDTqFR9GbJFimqD4s/tPwxGmYgH4uK+pSWkpgk8Ii7PbDXiPgSCaAPSMcofAHo1RGnswd+UFXzSydhRGRR1TqUZt3E2uvexMCbQIiUYJ9UFxMDTwIhUrSrr4mBG4EQCTng3kbiIeJpK45NRJnMwANwaZJcSNpm8jns/v0XoMemgQRwZdHAuk3xJSaATwviLwjpPKNkJWLxGVTrHCtrEQgvoG62x2PWXmYWtfGk4s+BkdhVBxgGdlF3/CZLZhX5tY4VUsAmqlbUKnhZ4ABYArrdSNTnjmoDWzY+1KzttDbegGu8Add4A66xVQmXqS5W15a+5XHKLz1EPuwFhf5TAAAAAElFTkSuQmCC;" vertex="1" parent="n.c-api">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.c-abuse" value="&lt;b&gt;Anti-abuse&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#e1d5e7;strokeColor=#9673a6;fontColor=#3a2b44;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="410" y="80" width="150" height="800" as="geometry" />
        </mxCell>
        <mxCell id="_ico4" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAADmUlEQVRoge2ZW4hNURjHfwczmRk0yL2oGYwY18TkUjQmyeUB5cUDRSKRvHiWSPGghHmhTI2EF6E8uJR4QEwub1PuM0PKbcrd8fDtnbXXWXvvtfbZZ09pfvXVaX9rf+v/rbXX9UAv/wergBvATWA70N9Qpg44AdwHTgLDsxIXx3LgN5BX7A2wG5gONAEtwC+tzGOgogf0BhgMdBEU5mKHspcc5DDJxeeBH8DEzFV7jAa+xQi0sdashfscsBQYZz+BcRlrpx/wrkjhqu3NVj4sTUm4b+1JhfR1KDsCWAtsBXYB1UkrNTAEWAjUeJpeIomlwgzgMvKtptnqUdYF7AMqixU/L2Phut2LE9gnxv8VmSp7ig9pBKlB9i6fya7lnwI7kNkuNSqRfc2+Eol+DGwDJruIyiVM5gswALgK7ER2liORmaoKabmBSvk/wCfv93vgrWfqd34Q2JNQjzOPvMq/AbMiyjUAwyL8R/nXA1tSU2fBcaXioyFlapEZ7FKIvxLpST9OfcoaI1mkVPwR+XR0Wjz/H2Q61tmtxHhSEpUR5IC7ioCHwALveTWyz9cXppXI2BiEiFd3shuKERLHCuAYMmhVKig8On4HyohfX3Q+IT2l0u7V/c4xVgFn6LmVeE2cOJuWumKTZQn4BdxOI1A50En2rX/BRpxND/wAmm2CpcypNIONQgaoqaUehDyPs/fAixBfB5b7INvZohM4F+JrBZZ5Ymw5h+x58iH+08gYSI1G4Dnm1vITGwAcofCSS7VXyNQIsviFlbsIDE1L/DYKb9V0USqbQsp1IhdhPqsiYuaRdaC2WPEbkQUm7nseo7yTA+4YyqzXYu+3iPsM8zbFisnIicxmQK7W3p1JsNduUbjqX7eMfc3wrhU3LSvII3t5nfOKf7Hm64vbCW+dq/iFDsHzXrI6bYp/s+ard4zf5ppAs2MF3QTn7eEEx85ZLX7YQI+yqSahYeuA3uVxVBE8kCwh+N02anU1OMYP1WRKoBwYn6CCucrvRs03FLkg85mTIP4U00NTAtUkG/VqAksMfv/ZQBxvHjyGmB6G9UAS/M+iDhhr8PsJzMHtTtanzPTQ9eQUxSRkpTW1PsjMVkGwp4omzQRywGzCE+iPHO5LnoB+NnVhPnJjEUYTyROw1lVG8L7GxV4X6Y8yp3809xZRUSnsC3LJbE05cpVisxMttXUgf2kZiZvvJwDTSHewu9CN7GS7e6j+XmL5C2vhs6WVM+pQAAAAAElFTkSuQmCC;" vertex="1" parent="n.c-abuse">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.c-graph" value="&lt;b&gt;Graph service&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="590" y="80" width="150" height="800" as="geometry" />
        </mxCell>
        <mxCell id="_ico5" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAAByklEQVRoge3YvY9NQRjH8c9aItbLJlTipSca4qUgXhLRiU7jXxCtiEqiFX8BjU5oFP4A26kkW+mWCAkauS6W2FWMTY6zNznmhbEy3+Qk986ZZ37P786cO88cGo1GoyZTve9ncBjrBuJe4T6+FcpjP85h40C/D3iId5NuXsZyxPWoQOJwBIsRui8wO2mgp5EGlrGjgIFbCboXVoK7S2VLgnhKTIkxtq58WJ8pvhfTibGv8SVTP9vAk4zYk5jL1B/8t/nnaQZqk/sMnMebxNjnmdrINzAvbCzV6C6hcaUcUnQ/Tmq8In5HPJ4g3ucovkZovtQpJfrF3FkcmtBO2DGv9+7N4dTPgXM4IBRzGwb6jfAAb1OF7ln9i1xMHawGu4T115/SmVoJxdYxI2GaT3faZvFJgbLgb7EJC36dhRF2VswpmktWPwt3qmYUyZSwZLoGvgunqzXDMSzhM65hd9100riLEzUTmLRhxTAtLJ3NuC1sakP11XvcwONM7aLcFFeCjLG9hHCp88DByP4z2FdCuJSBlHGKaK/5E1kzUJtmoDbNQG1KGViI7L+UEPNH2YNnfq+MWMTVUsK5xVyfbYaPqWPhNUqj0Wj8B/wA3nShnzCqca0AAAAASUVORK5CYII=;" vertex="1" parent="n.c-graph">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.c-esp" value="&lt;b&gt;Edge store&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="760" y="80" width="150" height="800" as="geometry" />
        </mxCell>
        <mxCell id="_ico6" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAADIUlEQVRoge3aTWwVVRjG8V9LkW+kwYDY6kLxC5QNJEIMECEGNSa6MCaGHStXrtyqxI0xJLCCDTGBBRuCiSQuTIgxhAUsABP5SAQlCFhlYaB82AqNdfFO06E9U+5M7+29rf0nbyY9M3Pmee85M/Ocd8o0zaVtHOfOwoosuvBEFp2YjTnZMf9kx9/AAK7jGv7ErziHK1VFlEmgE5vwOtbjOXRUvfAIbuI0vscRnMK/9ei4TQg+KH7JwQmKK/hMjGxlVuCHCRSdir/xqZiKpXgFt5osPh9HxH01ihkFbSfwWNmsG8jT6MexkTvaEwcvFU+TVmN1qjGVQKqtFUjqalWxNTMlE7gt7vxWo7fMwV9p/qMzH31YWyaBDuxrAeGD+AtvlRGfZzOON0n4HezG4qri86zCTpxvsOi7+A4fYmFVsV3Yj2UF+7vxAb7At7ikmtG7IVznfnyM1xTYBbyNHakdKTvdjavixjmAPfixoOM8S8RbfEnW76Jc//1Zf/1iHfB79vdYzMF7+AhrcBjv1qBDt9G/1gV8iS1YUEsnFVmObTgkplNewzepE8YagSIGREIXcBG/ZNurYmHSl108da1FmCsWR89msTzbvihGsIjkCFRZUXUYXkqORa9IZpaYDkXze1zUa0mY4tEsGsqU9EKTilQCdakGNICkrlQC19HTWC2VOF3m4LWGbXUrROGifixewtEmC+/D9irih2jDG/ga9yZQ+DV8jieriF6A5xPti/E+9uJn8Uaul+BbYrQ/wTqjyz3tCqoSRVbikjBxu/BbQaJzxdt4ZXbO49l2vmEj1+lBI3dXPCT+EA+Ky/gp2w4mrtGON0WZsUcFMzcgTNRWE/BWzfGyKClezGlJmrmHWYkZeCeL+zgpqmMnDRu5O+MU2yXM3At4FRvwVK0nl/FCM8X8XDeivUckc1lMlV4xVfrE3J4pptVCYermibLlM8KJziuhYRT1MHNDHzY21qGv0kxJLzSpmJIJTJcWGxDTpcVmCP9/lBarfKnvFh+6VwnPMvSl/pGS/dwUpvEszogy43Fh+mpmPP9qMJJ6lxanmRT8B1M0bJ9FjBNdAAAAAElFTkSuQmCC;" vertex="1" parent="n.c-esp">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.c-kfk" value="&lt;b&gt;Kafka&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#ffe6cc;strokeColor=#d79b00;fontColor=#4a3200;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="940" y="80" width="150" height="800" as="geometry" />
        </mxCell>
        <mxCell id="_ico7" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,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;" vertex="1" parent="n.c-kfk">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.c-atc" value="&lt;b&gt;ATC&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1120" y="80" width="150" height="800" as="geometry" />
        </mxCell>
        <mxCell id="_ico8" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAADH0lEQVRoge3ZTYhVZRgH8J+TlE4l5DDVqmghhRYhaLlIRMOCairbKVhEIJkouLJNiwiEiqI2BS0iKlq0yIVB0BchEZEWfmALwUUZY/ZBhA6lqbfFOwcvl3PP+3HPnSnxDw8MZ87zf/5/zvue9znP5RJmF3MK8y7H05jAwgHqd3AUL+HjAXiy8fJ08bbiHyybSQM/t2yggxdLhIwUGhhk2fTDWElSqYH/DOZG/r8ED9RcTzH+LfbiKtyDayP334YdNddfEJZYESbkr+UprOvhGcUbBVx/lAqvcENB0Sf6cI3g80yuLwY1APsyCv6ueVk+lGlgWxsGHskouDfCdUsG1ySubsMAvJdY9FiEZ3Uiz1nc15Z4mIcPEovf3cDzVkL+aWxsU3yFEWzG8YiAH7GoJn8Tzkdy92DpMMR34wqhd2kSMoXX8Bi24tPI/R1hmc4YziQIyo03S4Rc9K3EXerfxZdF8v7COy60Eg9jVSRnNd7vuXYe64UnVIR75S+FY7i5hmuz+CbujROlwiuM4Vxm0bUNfG9ncu0e1AB8lFHwpwjXmkwD69swcIf0p9BmK3FAfI8m45nEor9p3uAPJvL8iVvbEt9tIuVJPN4nfw4+S8ifxPK2xVdYgU8iAk4JH0LdmIfXI3kn8QquGZb4bqScxF/jVaGBm0y4v+gkbm2T1ODO6Rgq/vetRGy0OCGsy17cFMk9KkwTuluJLUIn2w8n8WvPtbMuvHqLsErewdPBN1hQw7VS6JFyuH4oFV5htKBo0/v7+Uyudwc1QNpnYBVHIlwrMg2sacPAjcL6TCm4L8K1OEP8h22Ir7BO2FCxolO4soHn0UTxRzDepgG4X+h1YsWf65M/iu8T8vfgurbFVxjDTmFm2U/AOTyL+V15i6aFNQnfjw3KfzXKws6ImI6wb77EQWlN4OKZEF5hWYKgnDg8k+IrxLrSnBjKJC6G2/F3gdje+Ep8yjE0PJkgsCl+Ec6ZWcV2+eOSjjBjXTILemuxVpgHpYrfjetnRWkD5uMpfKf+tXkKu8QndFkY1qExLvTx48Ln53Ecmv77Ei4q/AvJ59SkMmNdIwAAAABJRU5ErkJggg==;" vertex="1" parent="n.c-atc">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.c-b" value="&lt;b&gt;Member B&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#08427b;strokeColor=#073b6f;fontColor=#ffffff;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1290" y="80" width="150" height="800" as="geometry" />
        </mxCell>
        <mxCell id="_plate9" value="" style="rounded=1;arcSize=22;html=1;fillColor=#ffffff;strokeColor=none;movable=0;resizable=0;connectable=0;" vertex="1" parent="n.c-b">
          <mxGeometry x="5" y="13" width="32" height="32" as="geometry" />
        </mxCell>
        <mxCell id="_ico10" value="" style="shape=image;html=1;imageAspect=1;aspect=fixed;movable=0;resizable=0;rotatable=0;connectable=0;editable=0;deletable=0;noLabel=1;image=data:image/png,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACWklEQVRoge3Zz4tNYRzH8dfIrwmJGcZMIgpJEjZsiA1pLGhK2VDEcpLFWCkrG3tr/8GQHRNWipRhocxmombIaESNjDFj8XTrNHPunXueOfec2zTv+m7Ovd9z3p/uvec8z/eyRLm05Hy+lTiBbuzEFvzGKF6hH0M5XzMXVuAaRjAzTz3BwXI002nHc/OLJ2sKfSW4zqELw7LJJ+te4cYJWoXvdax8pa4WLV7hdp2C89UEthbsrh0/FyierPvF6nM9J/FK/cKqGJFlkQHORvZVYy2OxzTGBtgX2Zf7OWMDdET21aIzpik2wHRkXy3+xTTFBhiN7KvFSExTbIB3kX21eN+Ac1blknxvo9+xvMgA6zGWY4BS1kQ3ImVn1zjaCnZH+MifZpSdXdO4ULR4ko3Cjy9W/lbxynNZh0eyyU/gYhmytTiPD2qLT+EBtuV10bw39XAIZ7BLWHL8wWe8xmPhlrnEoiH2K7RfGI10YgMm8RBv6uhtRY+wfJ7CV3zCC/zIKpIlwBr04oowtErjozD3GRSmFePCTqsNe3EUJ4U712z+4hnuCmOaXOlW39Aqr+oXnjG5cFNYqxclX6kh7Fmo/OUSxJM1jM2x8oeFe3iZAWYwEBtgoAnkK3Uuq/yxJpBO1ttqotW2lD1ZEzeYA9id9kK1AKcb5xLNqbSDaQFasL2xLlHsSDuYFqBN+Kuo2ehKO5gWYHWDRWJJ9YqdCzUNizLAZOEW9ZHqlRZgTGNmnwtlMMube5X/9E3WN2zKEqAFdzTHYm5IWFhWFa1FB44o77nwBS+FrecSTcl/+F0YjmstwYwAAAAASUVORK5CYII=;" vertex="1" parent="n.c-b">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_m11" value="1. POST /connections + key" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.1150;exitDx=0;exitDy=0;entryX=0.5;entryY=0.1150;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-a" target="n.c-api">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m12" value="2. invite rate + risk" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.1650;exitDx=0;exitDy=0;entryX=0.5;entryY=0.1650;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-api" target="n.c-abuse">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m13" value="3. allow" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.2150;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2150;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-abuse" target="n.c-api">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m14" value="4. create invitation" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.2650;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2650;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-api" target="n.c-graph">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m15" value="5. insert if key unseen" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.3150;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3150;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-graph" target="n.c-esp">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m16" value="6. created: pending" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.3650;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3650;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-esp" target="n.c-graph">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m17" value="7. InvitationSent" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#d79b00;exitX=0.5;exitY=0.4150;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4150;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-graph" target="n.c-kfk">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m18" value="8. 201 invitation" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.4650;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4650;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-graph" target="n.c-api">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m19" value="9. 201 Created" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.5150;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5150;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-api" target="n.c-a">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m20" value="10. retry, same key" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;dashed=1;strokeColor=#b85450;fontColor=#b85450;exitX=0.5;exitY=0.5650;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5650;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-a" target="n.c-api">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m21" value="11. same 201, no new row" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#5a6570;exitX=0.5;exitY=0.6150;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6150;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-api" target="n.c-a">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m22" value="12. invite event" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#d79b00;exitX=0.5;exitY=0.6650;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6650;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-kfk" target="n.c-atc">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m23" value="13. push + in-app" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#d79b00;exitX=0.5;exitY=0.7150;exitDx=0;exitDy=0;entryX=0.5;entryY=0.7150;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-atc" target="n.c-b">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m24" value="14. accept" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.7650;exitDx=0;exitDy=0;entryX=0.5;entryY=0.7650;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-b" target="n.c-api">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m25" value="15. accept invitation" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.8150;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8150;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-api" target="n.c-graph">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m26" value="16. CAS pending to connected" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=block;endFill=1;strokeColor=#5a6570;exitX=0.5;exitY=0.8650;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8650;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-graph" target="n.c-esp">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m27" value="17. ConnectionCreated" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;verticalAlign=bottom;endArrow=open;endFill=0;dashed=1;strokeColor=#d79b00;exitX=0.5;exitY=0.9150;exitDx=0;exitDy=0;entryX=0.5;entryY=0.9150;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.c-graph" target="n.c-kfk">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="title" value="Connection Request — Idempotent Flow" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=20;fontStyle=1;fontColor=#16202c;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="20" width="1410" height="30" as="geometry" />
        </mxCell>
        <mxCell id="rule" value="" style="line;strokeWidth=1;html=1;strokeColor=#c9d3de;" vertex="1" parent="1">
          <mxGeometry x="40" y="50" width="1410" height="10" as="geometry" />
        </mxCell>
        <mxCell id="note" value="One row keyed by the ordered member pair makes accept a single compare-and-set; adjacency lists are derived." style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#8a97a5;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="930" width="1410" height="20" as="geometry" />
        </mxCell>
        <mxCell id="foot-rule" value="" style="line;strokeWidth=1;html=1;strokeColor=#e3e9ef;" vertex="1" parent="1">
          <mxGeometry x="40" y="950" width="1410" height="10" as="geometry" />
        </mxCell>
        <mxCell id="foot" value="v 1.0   ·   owner Graph Engineering   ·   date 2026-09" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=9;fontColor=#9aa7b4;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="960" width="1410" height="10" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
