<mxfile host="app.diagrams.net" agent="architecture-diagram" version="24.0.0">
  <diagram name="At-Least-Once Delivery — Duplicate Execution Without Duplicate Effect" id="17-delivery-and-idempotency">
    <mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1720" pageHeight="880" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="n.x_sb" value="&lt;b&gt;Service Bus&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="60" y="80" width="210" height="680" as="geometry" />
        </mxCell>
        <mxCell id="_ico1" 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.x_sb">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.x_w1" value="&lt;b&gt;Worker 1&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="290" y="80" width="210" height="680" 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+gvaeTAAACpUlEQVRoge3YTYhNYRzH8Y+3iLzkbZoSdhJZkI1YUWzYWbCxJCU1ZShlpVhQKIoFG28pKxaKDUnyUtTQZJCExZSJEYMMFs+cXMe5955z7jn3jppf/evWfc7/+f6e5/+8nMOIWqsxJeWdhA3YhMUYQG9JfRWqZTiJfvyKxRPsxuyW0VXRHAGsx7/QSfED17ER41rACyYMAVwZAkoDnhTvhRlb2izwWiXSaJRWYvOxDy9yQOWZnW+4jPUaKLFGS+QBdmIGFuGgsAuVXmLTcUS+EnmDA1hQJff4oUG5mnNQ7mNdLfjJeJQx6QDOY61sZ0o7dqErY38/saVa0r0ZEt3BVkzLAF1Ny3EcfSn77sOUpEQ36zz4FkexpADoJI0XFu4lfK/DsjopwdOEhgO4INReWdeOJEUl9iSB6Rc2Rw1H10n0CS/RjcEySKuoF8/wOstDSTMQxaA/x//YIkljahcOs1c1WP6agbQG4mvhIOYWBD0aa6Sr/UIMRFF5KcuzPqYJh93zjP0WZqAyeoSpn5UCPLpPfWmgv8INRPEV57Aqljsa7ax9DDbbQGV0oQOn8Tnjs++wHwtbaSBP3Pb3i87EegbK3BLT6oOwAx0TDq5MaqWBhziFs8KCzqVmG+jHRZzA4yISNtPAGewQFnRhqncXKlLdCoanuQZK0YiBVuu/NzAcDrJqasOeeo0qDXwsjyWT2tCJbcJVIkkfoh+VJXSrRKg0asNh4RW2Q3X4r7iX9Mds4R20rItaZx3wtDfWvbVGYR6uNclAVvA+bMeoWgYirRC+i5ZhYKbwTp0WvH+ofa6PaCtxoyADh2Qf8X2Ymgc8rjJmpJQRb6WRUsHLNNJU8LgaMdJS8LiyGBlW4HHVMjKsweNaKXyW78Zd4atdIdvhiEZUsH4D+zfN9JHFLwAAAAAASUVORK5CYII=;" vertex="1" parent="n.x_w1">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.x_w2" value="&lt;b&gt;Worker 2&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="520" y="80" width="210" height="680" 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+gvaeTAAACpUlEQVRoge3YTYhNYRzH8Y+3iLzkbZoSdhJZkI1YUWzYWbCxJCU1ZShlpVhQKIoFG28pKxaKDUnyUtTQZJCExZSJEYMMFs+cXMe5955z7jn3jppf/evWfc7/+f6e5/+8nMOIWqsxJeWdhA3YhMUYQG9JfRWqZTiJfvyKxRPsxuyW0VXRHAGsx7/QSfED17ER41rACyYMAVwZAkoDnhTvhRlb2izwWiXSaJRWYvOxDy9yQOWZnW+4jPUaKLFGS+QBdmIGFuGgsAuVXmLTcUS+EnmDA1hQJff4oUG5mnNQ7mNdLfjJeJQx6QDOY61sZ0o7dqErY38/saVa0r0ZEt3BVkzLAF1Ny3EcfSn77sOUpEQ36zz4FkexpADoJI0XFu4lfK/DsjopwdOEhgO4INReWdeOJEUl9iSB6Rc2Rw1H10n0CS/RjcEySKuoF8/wOstDSTMQxaA/x//YIkljahcOs1c1WP6agbQG4mvhIOYWBD0aa6Sr/UIMRFF5KcuzPqYJh93zjP0WZqAyeoSpn5UCPLpPfWmgv8INRPEV57Aqljsa7ax9DDbbQGV0oQOn8Tnjs++wHwtbaSBP3Pb3i87EegbK3BLT6oOwAx0TDq5MaqWBhziFs8KCzqVmG+jHRZzA4yISNtPAGewQFnRhqncXKlLdCoanuQZK0YiBVuu/NzAcDrJqasOeeo0qDXwsjyWT2tCJbcJVIkkfoh+VJXSrRKg0asNh4RW2Q3X4r7iX9Mds4R20rItaZx3wtDfWvbVGYR6uNclAVvA+bMeoWgYirRC+i5ZhYKbwTp0WvH+ofa6PaCtxoyADh2Qf8X2Ymgc8rjJmpJQRb6WRUsHLNNJU8LgaMdJS8LiyGBlW4HHVMjKsweNaKXyW78Zd4atdIdvhiEZUsH4D+zfN9JHFLwAAAAAASUVORK5CYII=;" vertex="1" parent="n.x_w2">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.x_idem" value="&lt;b&gt;Idempotency 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="210" height="680" 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+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.x_idem">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.x_down" value="&lt;b&gt;Downstream system&lt;/b&gt;" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=0;collapsible=0;recursiveResize=0;outlineConnect=0;size=58;rounded=1;arcSize=8;fillColor=#f5f5f5;strokeColor=#8c8c8c;fontColor=#333333;fontSize=12;fontFamily=Segoe UI;verticalAlign=top;spacingTop=9;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="990" y="80" width="210" height="680" 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+gvaeTAAAB40lEQVRoge3Yz6sOURzH8dfjXlfuQkoW6ooiIUk2imRna+kvYCMLUlIsWNhYKFtZKUp3y80/YGOHKD+6RCGJErnyazF3MsbM85z73HnmTDnv+tQ0c2bm8znnzJyZL4lEIpH4n+k1dJ21mMJKfMFjvG7o2iNjChfwFL8q9ARnsTqWwTrGcE7W01XGy/qEo5ob7UWxAjPCjJd1DRPtW/7DOG4bznyuqyKOxPkAgyE6jD24IXtOPmMWV7B9VObX4WtDAb73OfYDZ4xglC41ZD5UJ5s038PLlgPMYUOIuSUBbTbJ3vltMoFDIQ1DArRtPmdvSKOQALFW0kXfdxlO4IV253+uOyEmx2v2b8U0tgTHbZ57w564Ex/E6fWynuE4loeaX4VXHTBe1kNsCwlwuQNm6/RuUIg1+NYBo/30SGk6FV+jB7G0X8IOsBlH6g5Oi9/DIZotmi6OQKwVd6Gsl33e4O8AUf+WFsjGfKMYoPNVhAKT+UYxwIMIRoblTdXO3eI/oCGakxUX/qGHux0wOEg3q8zn7JP9l8Y2Waef2NUvAJzqgNE6XRxknmwqnZ5PG9twUdfVf/5Xsh/3O2D8I46pKbUMqr+MzQc5gB2y1Xqy7xnN8BbPcUtWknzfwj0TiUQikWif37lJeEKjXHZHAAAAAElFTkSuQmCC;" vertex="1" parent="n.x_down">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.x_orch" value="&lt;b&gt;Orchestration 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="1220" y="80" width="210" height="680" 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+gvaeTAAAByklEQVRoge3YvY9NQRjH8c9aItbLJlTipSca4qUgXhLRiU7jXxCtiEqiFX8BjU5oFP4A26kkW+mWCAkauS6W2FWMTY6zNznmhbEy3+Qk986ZZ37P786cO88cGo1GoyZTve9ncBjrBuJe4T6+FcpjP85h40C/D3iId5NuXsZyxPWoQOJwBIsRui8wO2mgp5EGlrGjgIFbCboXVoK7S2VLgnhKTIkxtq58WJ8pvhfTibGv8SVTP9vAk4zYk5jL1B/8t/nnaQZqk/sMnMebxNjnmdrINzAvbCzV6C6hcaUcUnQ/Tmq8In5HPJ4g3ucovkZovtQpJfrF3FkcmtBO2DGv9+7N4dTPgXM4IBRzGwb6jfAAb1OF7ln9i1xMHawGu4T115/SmVoJxdYxI2GaT3faZvFJgbLgb7EJC36dhRF2VswpmktWPwt3qmYUyZSwZLoGvgunqzXDMSzhM65hd9100riLEzUTmLRhxTAtLJ3NuC1sakP11XvcwONM7aLcFFeCjLG9hHCp88DByP4z2FdCuJSBlHGKaK/5E1kzUJtmoDbNQG1KGViI7L+UEPNH2YNnfq+MWMTVUsK5xVyfbYaPqWPhNUqj0Wj8B/wA3nShnzCqca0AAAAASUVORK5CYII=;" vertex="1" parent="n.x_orch">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.x_cos" value="&lt;b&gt;Cosmos DB&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="1460" y="80" width="210" height="680" 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,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAABmJLR0QA/wD/AP+gvaeTAAAKS0lEQVR4nO2beYxV1R3HP+fct8zGDrIpM6OoDEOlqMhQFUFocax1o4gYSVkUNSZobW0jNkIlLlgFRaUhRmxq1BSrbbViU4xCDBJREgsilBEEGZaBGYbZmLed8+sfszBveG/m3ffujKaZb3Iy9757z/f3O9/7O/sZxXeAhWsO55wKZk1RqBKgBCgE+jQnPxAFDgHfiJLPETb1q+33wfOLVLi7fFTdZQjg9rUnLxZl71QwmyYR3KAGeE1r89yffzFoTxe4F4duEebWtVXn+JR6SmCWBzaNEl4O4//dm/N7HffCv0TocmFuW3viHuBpIMdbZlWBkvmvz+u/3lveZvauIAWY+8o3WWHpvRqY11U2AKuUWvz6vP7LvSbuEmFKV0mwT+6J94CpXcHfHgp58o0FAx/yltNjzFwnjq478RdghtfcHUHg1+sWDHjGKz7tFVELVG3VMhGZISJ0Z0Jk+cyXKq/2rBxeEQHMWFs5QVs2A046+QMORExGLhwIK/nBOwsG1WXEgocRs3CN+DHyihVxrAhuklLCPRMdVt8cYNr52lXedik/YMSTtsYzYY7pqllWKLICbhLAHZf5uPQcB6Vg9jgfpaMcVxxtk0Hdd9Mfj56VaXk8E0as/ZXbLwzCXSV+SvLja97MsT6mph85OcbRCzItjy/djDPXSSBSXTHOoicAkyz80E1+rWDhxAAl+Wd+GwXMucSPFdhQlkajI8wDnnCfMd4HVyhdU3GeFu6maeA2IB2jWsE9EwNcUdBxGy3Anz6P8u89MfdGjBn93r3DdqXjH7iImKkvlA8IaP8KLLfbDKqgVnB3SeeiQNNXm3tpU+S4FUe0MwnoWmF+8uLRWUrxvEUGIemaAqXg7pIgVxam3psrYP54P1bElTgijEvDxVZ0Ksz01Ud+K8KTkoEg0FTAOy4LcNW57oc4LXmthQ1lqYmjlBS4NtTOZmKIqKmrj6xUou7LxECLkYUTAky/0J8Rjwg8vznMxn2diyOwXymZ0xA227Y8cE6jW1tJhZny4uFfKlEr3BImMnDnhADXZihKC6zAc5vDbEpBnGZEBTZr1JqT/sFvbbtLRVPJlFCYq5879COr1Uaalhkzwo3FfuZfGsyUJg5WYMmGEP854rq3OoSo+zcuGvrXzl48Q5jSVWXBBnJ3AwVurSZCr6BicF7iwLxpTICrCpM3c2/uiLC3yiZ8trPCUN2YdsP3dpjgvE8XDahN9sIZXtWRexeSWcPVFjUhoSaU+NneKtOhMB98HeXgycTCZIib/SpUcOWqI9d8vGhowuXRuPHIJWsO54iVhzKYxLlK0klXJ11p38rFxpoPJ794LC+R7bjP5T9lbjKoIS7VTxudVYS2E80uwphQNPISTbsWcYiLGCNyvRGhu1Jnhe4WP6zcOn5F+S1JhRm5qixoRV2T7nQ/ndRZMEi3+SLLJi+VuNrTepMbC4w0Ir078dVTdNbGGGmKmm7ABSfzymcBr7X80CqMjUm+6tZ9yRQihpZ1m26AyC0kEkZEj7CZzBDTQOdtTFPqJvz4oj8czd3+4JAGaCOMURKku75OMxzdsb3TK33dgmxRjWOAT6FtxBh7TLqgKjkaLhygGdlfU9hXkd9XMzBHMSgH+uR0PON4+foglQ2G4w3CoTrLNyeFfdWWL49Z6iPe+4qRfNoLE0Pt9ipisnwwucDH5HzNuCGa3MBpxQ1QJQ7lyuGUaEZ0wHNA+dG5DoU5MYrPOj2yMAJ7qixbyi3ry2IcrfcoqkQNa7lsFSYYbtjZGMgOAVnp8mb7YM5YPzOLfK1iNKLYKkF2E2C/+KnAhwEQ+CkRRpD8yMur0pvDtkmQXmLJJ8pIFeUiFaZoYIyigZq5Y31sKTe8sDXCgZrMBBKhsuU6rvLkP7Z3PVCaDumQPMXqa7MY3qupIKfQ/F3y+ESyiCVZ3bjEF+OGQOI6YYGVjdnUJKnfBUT5uapjZPMqQswKyz6O8K+v01gfboYoueLbxSM3Q7spgUG9rUTSEuapaadFAXjW9uXbTlYttsV8bIult1GxHz8rpT8PUcXZKoZPKx6ZFGR3pWVfdVoTTwlEKWu5ifMqGqh7wxfKfRqXp520hvP6uWu5bcxgjMHEzOm4FVqvtdZon4PjOKgkAyyFoNs8chQU9lN8fSKtKvXp3qUjj7XcxAlT8eDYhiG/L3sWxRI3jFbgrQMxZhWejpD79Un+YXPZTDaN4SihUyEioTDRcIRoJIKkOjtU4PP5CQQD+LMCZGVnEcjO4gId5WZdzzBOV50DtZat9Sat0bJSrGt7f0Ycx7LMMzrk3AEMT5lU4NVQjPBeuK3Qj09DDpbZuo6fSR0fiI/PxHLAGCLG4qr3E7DWoqxhoI0yWizXUE+hjq8u244ZVlRFabSdT04ToEGs7424MiV6a+DSPdcJvJPseXsoDfmT/DiOZohoSoOKaUMdegXOzG6ACnHYF1WciArVRoiIot6CRcjVioCCXloY4FMM9cG5PkswwajcCnx2zLC+xvKFFoyxHN8Vpf6oO2VE8ciJJRcsiytTspf7LdmzHOQ3qRArBwonBXAcjXYctOMQQDEqZhnjF8b2VhT0Vvh15iPIigbLjhrYEYKdSlPtCNZYrDEYY6n4Kkr9UVeN7/7c2pzR5SvjdxKSdgnVX52/uPfoPSMQbu2MOdHIPuYodgX8/Ndx+JvRONWKsyKWwbEYfRH6aUsfLeQ5TY1mlhb8WlHX3GQ0GKg1UCOak6I4rjVHA34aHTB+i9UGayyY+L1twdX8qs7RckN7UaCjDbc3lald+tGcXDsspJC5HdKn4Ig4muN5Pqp0FlprlFYordGq6TruXRHECtZaRGzrdSIh2sPF/CqmRG6rfrRoe6KHHQ8ilk6JNcC87Id37UDxOJBwH6Sb554dQppX5jrBcdFqVmhZ0UfJXkhpc77xsaIVRjHeIpuSn3X5fsBCQv9aE7JJRMaHHh2VVBRwcdohsqxoBzDZWbyzVAkPoJhKc+P9PdIFmzxivhBRD5snRqd0YNr1eNw8Xvw+8D4PfzEc47tBKy5H1DigyC1XV0CalkNPIRxCcVBQG7C8y/LinW54PFmBmfjJwexIJHaqbXetHd2m+27zV+uMGt+Wbtka03rf9vdIyNy7ffp5qzMtk+fnfL9rOH6S7Hu6w/+dMF6hR5gk6BEmCXqESYIeYZKgR5gk6BEmCXqESYIeYZKgR5gk6BEmCXqESYIeYZKgR5gk6BEmCXqESQJPhKktrzWktInSDZDU/rukM3gizM5biiMK/ukFVyroYD22xmjT4ep/qvCsKkXC2bNRvOcVXxo4ooXS7VPOL/eCzDNhtk8f0rD1ivzrRNSNwBaveFNAJUqewBcetXVygWd2u+zI8+VbjxT7fL4ZyudMcxxdoh3H79UugbV2v4mZD601608EK9/dWVzs+RnObjkLPvHgwey8hv7FyuEiRzlF2lHDlVZna60GK+X0UVoFgL7N/tSJSEys1FlrKxF7WKwcMdaWSczuCIfDX24cO8CT6tIR/ge27CY8KY2l7AAAAABJRU5ErkJggg==;" vertex="1" parent="n.x_cos">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_m8" value="1. deliver taskExecutionId 82f3 · attempt 1" 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.1353;exitDx=0;exitDy=0;entryX=0.5;entryY=0.1353;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.x_sb" target="n.x_w1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m9" value="2. claim 82f3 · IN_PROGRESS · lease 5 min" 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.1941;exitDx=0;exitDy=0;entryX=0.5;entryY=0.1941;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.x_w1" target="n.x_idem">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m10" value="3. POST /customers · Idempotency-Key: 82f3" 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.2529;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2529;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.x_w1" target="n.x_down">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m11" value="4. 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.3118;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3118;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.x_down" target="n.x_w1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m12" value="5. pod evicted before recording result" 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.3706;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3706;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.x_w1" target="n.x_w1">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m13" value="6. lock expired · redeliver 82f3" 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.4294;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4294;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.x_sb" target="n.x_w2">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m14" value="7. read 82f3 → IN_PROGRESS, lease stale" 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.4882;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4882;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.x_w2" target="n.x_idem">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m15" value="8. POST /customers · Idempotency-Key: 82f3" 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.5471;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5471;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.x_w2" target="n.x_down">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m16" value="9. 200 OK · same resource, no second customer" 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.6059;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6059;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.x_down" target="n.x_w2">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m17" value="10. mark COMPLETED · result ref" 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.6647;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6647;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.x_w2" target="n.x_idem">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m18" value="11. TaskCompleted · complete message" 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.7235;exitDx=0;exitDy=0;entryX=0.5;entryY=0.7235;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.x_w2" target="n.x_sb">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m19" value="12. completion for 82f3" 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.7824;exitDx=0;exitDy=0;entryX=0.5;entryY=0.7824;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.x_sb" target="n.x_orch">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m20" value="13. transition RUNNING → COMPLETED (ETag)" 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.8412;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8412;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.x_orch" target="n.x_cos">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m21" value="14. already COMPLETED → no-op, message settled" 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.9000;exitDx=0;exitDy=0;entryX=0.5;entryY=0.9000;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.x_cos" target="n.x_orch">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="title" value="At-Least-Once Delivery — Duplicate Execution Without Duplicate Effect" 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="1630" 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="1630" height="10" as="geometry" />
        </mxCell>
        <mxCell id="note" value="The platform guarantees the key, not the absence of duplicates. Where a downstream cannot honour an idempotency key, the handler declares itself non-retryable and the task dead-letters on first failure instead of risking a second side effect." 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="810" width="1630" 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="830" width="1630" height="10" as="geometry" />
        </mxCell>
        <mxCell id="foot" value="v 1.0   ·   owner Data &amp; AI Global Practice   ·   date 2026-08" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=9;fontColor=#9aa7b4;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="40" y="840" width="1630" height="10" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
