<mxfile host="app.diagrams.net" agent="architecture-diagram" version="24.0.0">
  <diagram name="Inventory — The Reservation Loop That Prevents Overselling" id="15-inventory-reservation-lifecycle">
    <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="810" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="n.i-av" value="&lt;b&gt;Available&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;Redis counter&lt;/font&gt;" style="shape=cylinder3;boundedLbl=1;backgroundOutline=1;size=11;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="660" y="100" width="190" height="90" 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.i-av">
          <mxGeometry x="12" y="39" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.i-rs" value="&lt;b&gt;Reserved&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;TTL 900 s&lt;/font&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1020" y="200" width="190" height="90" 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+gvaeTAAAB6UlEQVRoge3ZO2sVQRjG8V+Od1SMQfECWqaMgo0B0UYsbBW0Er9BPoLYWdmIrZUgWKmIlYgRRCvBSuRgJ15QBNGoSSSx2CMuh70N2bNzhPnDC8vOzDvPs+zlnR0ScZloOd8UTuME9g3iJ96jj/t4jpWW510z07iNZazWxDvMYWMUpUOswxUsqRc+HG8w273kf+zAA+HC8/ELF7oWDuvxMFBsWazgfLfyud6C8Hws4HBX4mdlV62JsK9YbNj3mfbfioU8qRHSx0XszI2ZwTX1D/vZUYs/VCPgLrZWjD+GLxXj50cl/C+XKiZ/gc0NcpxSfgv+xq7WVed4WjLxKk4G5LlXkedciKBeSGccKDn/EY8C8tyqaDsYkCfIQA97S9peC6tvXlW07Q/IE2RgEzaUtC2ETIpvFW3bQxKF3kJjRzIQm2QgNlXF0zQu4zi2DPpOlvRdxveAeXuy9UQRi/gxOH6Lm7gq+0o3ZkZWSbZZMq8l7gisVB+PgejhONNU/DbN6/0u40aR2KKHeFJHC4tApopO/vdvoWQgNslAbJKB2CQDsUkGYpMMxCYZiE2RgaXOVTSjUFeRgc+yfd1x42VI5znxl5D5+ITdIQYmZL9Umu5vjTL6OFIltIo9OCrervoH2eZf0D+hRJf8AWMqePzwYejUAAAAAElFTkSuQmCC;" vertex="1" parent="n.i-rs">
          <mxGeometry x="9" y="33" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.i-cf" value="&lt;b&gt;Confirmed&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;ledger row written&lt;/font&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="1020" y="410" width="190" height="90" 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.i-cf">
          <mxGeometry x="9" y="33" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.i-al" value="&lt;b&gt;Allocated&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;node and wave&lt;/font&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=#1a2b45;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="660" y="520" width="190" height="90" 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+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.i-al">
          <mxGeometry x="9" y="33" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.i-fl" value="&lt;b&gt;Fulfilled&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;handover scan&lt;/font&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontColor=#1e3a1e;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="290" y="410" width="190" height="90" 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+gvaeTAAACnUlEQVRoge3az4tNYRzH8ZeZ8TMLSZPxowizUBLyI0lSilLIH0DWs7CQtY0U2ZBIWVlQbAaJhWJhRrKxUUp+lTt+pDB+jDGGxbm3rjv3jOfe+5xzNvOpb/d07vN8v+/PPec5zznPuUyoWE2KnGsttmIlFmEGfuELnuIObmMwYt2WNRk9eIY/ATGEa1hTBGytdkp+2RDw2hjFZczPnVpyuhwpQzQDXx0lrM8Tvg0XI4BXxw/sysvA0QCgl+jFOfQHmviG1VnD75F+2oziElbV9JmCd4EmXmNOVvDT8Sal8HtsTuk3B58DDfzB6awMHEopWMLiqnZtkqvTGdyQmGtkPAxjaWz4jhSQn/69gqzA4waB68XZ2Aa2pBSqPtyrJTNujKtSSXIko+lknSIj6Cp/Pw0vIsFXYkMIWKjLesn6MFDe3i+594mpTSGNQg101dnXX7W9OzBPI1oS0ijUwNw6+95UbXcH5mlEs0IahRqod9s9r/zZiQWBeRrRSMxkL40dZL9xUzJ7xhy8lTgRAhZ6BAbq7GvDDiwMzNGoSiGNQg30tQDSrO7HTLZNNqdJWnwQeSKbirc5GjgfE76iwznBj2BZFgZmyucoXMgCvqLt4jwHp8VrzM7SABzPCH4YG7OGJ3k2uJuBgYN5wFfUhY8R4XvzhK9oX5OwtfFJQYtbcC8A8H/Rkzt1ldZp7ar0XLLsUqhuad7AgQJ4x2iv5uAHJZNjS+poNYFkqfyYxm++nuBrhPoTKlSxXjFdEfgQXqXrONVq4RhjgGRht7PBPk9jFI761FOEYhkYbqJPlGWTWAYeNtHnQaTaUdSN78InsX60F0I6jtJegNTGEJYXxDiu2nHV+PDDktvwaIr5V4NKvg3qr5WO4hFeRa45oUL1F4RjSvd3c7OYAAAAAElFTkSuQmCC;" vertex="1" parent="n.i-fl">
          <mxGeometry x="9" y="33" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.i-rc" value="&lt;b&gt;Reconciled&lt;/b&gt;&lt;br&gt;&lt;font style=&quot;font-size:10px;color:#5b6b7d&quot;&gt;count vs ledger&lt;/font&gt;" style="rounded=1;arcSize=8;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontColor=#3a2b44;fontSize=12;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="290" y="200" width="190" height="90" 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+gvaeTAAAD+UlEQVRoge3YW4iVVRQH8N+MOWpaWo0+WDgIQnYPLYosCCohLCPD7AKhREZQ0ENUJHRDEcoKqpceuj1UEBEJWWAXCoqiG5iFpZMDEV4yKjSmnLGmh/Udzuc33+0cp+nl/GG9rL3W2mvtvfbaa2866KCDDjoI9OEmTEzxTsFy9PwvHtVEN9ZiCCN4CCdjLvoT3g9YlKfc1eakk7EQszATg9iHbfixRVuL8FENua9xVou2c9GDb8TKZOkQrmrR3kR8X2AvTffkKXe37D7zcFrB2AQsbdHeHMyuIXdeHrOdACYc4XgD03EJHsG0FP8VLMFKkZINXI1VCgJpBUuVb/VmTKlh5/kc3TczMn04mCN3fpXxS0U1mJ/inYN3K5xv0F7cjaMS3R7cKvJ4asJ7L0fvthxftuTILS9z/jL8nQgO4Qms0SxzrdCnIhV2pHibROpuzJF/LOPLZPyaI3d5kfMn4ec2HG2V7sOFeAbbU/wDIv9hBl7O6G3EBiUp+s44ON8otwuSOZfkjA9iOMPrd/gtPQpXjJPzDXo/NfdXNeRXlzkPb7fhxCC+w09tBnEqzqwpm3tbp++BVtqKnVgh8nS+ODuniwPaCrqxC1tTvA9wP+7FnwlvRKR3KebgDfyjfCUGcGyBjS48V6E/InZsZUpvEu4U90Bfin8LXlXQyBVhgViVoslvrNCfit0l+usSh/9T7CyY/KB6t+yTBfojWDaWjhb1QjML+Ls087IMO0rGZtXQr42iAP4o4E+vaXdGydiBmjZqIS+ALnF95+E4NRop0WUW4bca+m1jCT5XXkE+1GzS8nCB8kp2AOvRm9GbZPTinCDKcy2srXA8Ta+J3cjiIsUFIEt7NM/aCs3KtyrhdeGThPeWKPOjkL68PsO5daMVqfC66FGm4WIt1mvR+f4udr2BYbGDww5/6HxR5d8a7bUD7dI+HI1jxG5UyWdbbRx+iJ9ODI0X1oleqke8P6pQ66m6THUrMRb0sSgEfXgqM/Yl7sKjIk0b/EMiRY+vCuLxjMHd4nHdjqNDootM8/bixJx5RsQ5TPf8Z2u+Dhs0rPhXhMTAS6IqrBc5OiVZqayxMtqmeegWi4PaL15i5D+e7sjx59scuWvKAijDPLxY4fgArlWds5tydB/IyDTa7azcle0GAGdUBPBCTTvXi11JP9r3iEUiSvzDGdvbxc9IUa82rgE0cHNGf0ichYEM/xeRzkeMXvmfTQ16sEV73eLjtupM3Z6n3O7v9GLcIFrjXvwlLqat4qtwsAVbc8XnbumPg3itjcr9sqasDJsTGivsF40b8UmwRVS86zQv2/1jON+YYzaeFW/lhSn+BnFwV2s/WzrooIMOOijGv2hVX3koN3LcAAAAAElFTkSuQmCC;" vertex="1" parent="n.i-rc">
          <mxGeometry x="9" y="33" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.centre" value="&lt;b&gt;One SKU at one node&lt;/b&gt;" style="rounded=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=#f7f9fb;strokeColor=#c9d3de;fontColor=#42536a;fontSize=13;fontFamily=Segoe UI;verticalAlign=middle;align=center;spacingLeft=38;" vertex="1" parent="1">
          <mxGeometry x="640" y="330" width="230" height="50" 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,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.centre">
          <mxGeometry x="9" y="13" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_ring8" value="reserve · Lua CAS" style="curved=1;rounded=0;html=1;endArrow=block;endFill=1;strokeColor=#5a6570;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;" edge="1" parent="1" source="n.i-av" target="n.i-rs">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="1000" y="130" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_ring9" value="payment authorised" style="curved=1;rounded=0;html=1;endArrow=block;endFill=1;strokeColor=#5a6570;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;" edge="1" parent="1" source="n.i-rs" target="n.i-cf">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="1250" y="350" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_ring10" value="fulfilment engine picks node" style="curved=1;rounded=0;html=1;endArrow=block;endFill=1;strokeColor=#5a6570;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;" edge="1" parent="1" source="n.i-cf" target="n.i-al">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="1000" y="570" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_ring11" value="picked and packed" style="curved=1;rounded=0;html=1;endArrow=block;endFill=1;strokeColor=#5a6570;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;" edge="1" parent="1" source="n.i-al" target="n.i-fl">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="500" y="570" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_ring12" value="delivered, RTO or return" style="curved=1;rounded=0;html=1;endArrow=block;endFill=1;strokeColor=#5a6570;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;" edge="1" parent="1" source="n.i-fl" target="n.i-rc">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="250" y="350" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_ring13" value="drift correction, hourly" style="curved=1;rounded=0;html=1;endArrow=block;endFill=1;strokeColor=#5a6570;strokeWidth=1.4;fontSize=10;fontColor=#42536a;labelBackgroundColor=#ffffff;fontFamily=Segoe UI;" edge="1" parent="1" source="n.i-rc" target="n.i-av">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="500" y="130" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="title" value="Inventory — The Reservation Loop That Prevents Overselling" 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="_lg14" value="" style="rounded=1;arcSize=30;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
          <mxGeometry x="40" y="710" width="20" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg15" value="Data store" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="70" y="710" width="70" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg16" value="" style="rounded=1;arcSize=30;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
          <mxGeometry x="160" y="710" width="20" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg17" value="Application we own" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="190" y="710" width="110" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg18" value="" style="rounded=1;arcSize=30;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
          <mxGeometry x="320" y="710" width="20" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg19" value="Opportunity" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="350" y="710" width="70" height="20" as="geometry" />
        </mxCell>
        <mxCell id="_lg20" value="" style="rounded=1;arcSize=30;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
          <mxGeometry x="440" y="710" width="20" height="10" as="geometry" />
        </mxCell>
        <mxCell id="_lg21" value="Security / platform" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;fontSize=10;fontColor=#7b8794;fontFamily=Segoe UI;" vertex="1" parent="1">
          <mxGeometry x="470" y="710" width="110" height="20" as="geometry" />
        </mxCell>
        <mxCell id="note" value="Expiry and cancellation return units to Available on the same path as reconciliation, so there is exactly one way stock comes back." 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="740" 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="760" width="1410" height="10" as="geometry" />
        </mxCell>
        <mxCell id="foot" value="v 1.0   ·   owner Commerce 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="780" width="1410" height="10" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
