<mxfile host="app.diagrams.net" agent="architecture-diagram" version="24.0.0">
  <diagram name="Wait Mode Under Contention" id="16-contention-and-wait">
    <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="770" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="n.w" value="&lt;b&gt;Waiter&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="100" y="80" width="240" height="570" 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,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABmJLR0QA/wD/AP+gvaeTAAACz0lEQVRoge2ZT4hNURzHP294imjmzYtJFmThkWzGv9IIhaSUFMlGUTYmShMrUlbKRuymlC2biWKhLLCgsZiVUUyUMJhG6dEznnctTo9xnXvO79x7z7kW86mzOfec3+/7vffce/5cmKFYSoI2/cARoNOzljgvgTPASJYg64GowDJqE9hhub5aaNQXK4HZpgY2Az/y05KKJupJJGIz8BD4lpscd+4BP00NJC/xGuAssF9z7TLQcNf1F2uB7bG6FjAADAL1jPEB2I3+JVuWQ+xzmrgT0s62IdTmc0L9ImkiA7oYk9LOUgPvE+qXShMZ0MUYl3aWGngNfNTUb5MmSmAW0KepH5YGMH5jYzxFvQvT2QFUHGLE6QW6NPViAy70E2b2nQIW+jBQBb4HMDDkQ3ybmwEM7PFpoIZaXvgS/wTZ5JqJQU/iW8AW3+IB5gPPPRi4FEJ8m17UIi8v8Y+AckgDAJuBLxmFR6hvfndg7b/ZBLyxCDSVW8CC4KpjdAHXUet2qfBJ4GgRYk3UgNuYhU8Bp1Efgv+KGuopSGbqt6jThrmFKI1RAo4BX3Ef/6PAuvCS/1AGbuAuPD6kDoQWDkr8kEVcHXiG2ks0De2awKGg6oGLBkH3UfuE6XuNKmo5/i6hTwM1OQZhF2rdoruTJy19u4G7mr4R6ijR+5xQBl5okreAw8IYc4A7mhgRcCFnvf9wPCHxFcc4FeCVJk4dWJyX2DglYEyTdJx0j36vJlYEnM9Bq5a+hIQnMsQc1sQbw2FT43IqcTChvgc1s6bhk6ZuObAReJwyZiIjZJu0XMopqSjpwdY8wv4r2CBtKDWwArfhlpVV0oZSA6F3TFVpQ6mBLMeHacjthnUA11CrxlAvcLtMAPuyGthZgPD4JGnENoSWCI36ogfLcYvNQC7/pzLQwPKTz0YFtSEpaghdtQmUrDk6ga2oZXBIPgAPAuecwZlflxYsWuMW9cAAAAAASUVORK5CYII=;" vertex="1" parent="n.w">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.arb" value="&lt;b&gt;Arbiter · queue owner&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="450" y="80" width="240" height="570" 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+gvaeTAAAC/klEQVRoge2YO2gUQRjHf+edGg1RRI2VIjEqNhHio1AkCNFKwcLGRk/R6wQLDT6wEETBTjvB3iKKjRYBLdQEVFB8pfABvhAMRgwpNKKXs5gdnJ3b3fl29/YScH+wsHf7zff6787sLOTk5ORMJYWM/M4GeoGVwDgwCLzOKFbD2Q2MADXruAYsanQwqQI9QLvArhM4C8wIuf4UOCfwMwkMAV9E2TnYTn03m3E8kiQX1ikTSeezQBRXUsC0RlLAE+B71okEcKfZAfciu7c/kt30nYo24DPuAvqmIrELwANgANgVYdsL/CQ8+QFgZsjYhcAl1OxzE9jWgNwpolZRO5FyxJiNqPnetP8DnEet0EG0AC+sMVVgZ9oC9gUkXwNGUcqEUbHsvzriHA2J8x6YlTT5Eur9RTt7ieqK/n28QQXMRa242va5NfZg0gLKlqOtwFVkKsQpwOz+JLAWuE1KFYrAK8PJoPf/GvwqnEhZQCv+7vd7/28ipQpl6ruvkaggLeAY9d3XJFYhrPsaiQqSAlrxv3b3W9dtFQ5JCygT3n2NSwVJAVHd15gqfECggqv7GpcKrgJc3dfEVmE/7u5rolRwFSDpvkasgrT7GluFk8ICpN3X2CpUwgz3IO++xlRhhH+vClEFHMbf/S5BHFOFNxjbgJJhdMA4rwFXBI7N26Yd2AFcd4wx41SBG4I4843zTmALcBf8BcwzzgtAh8BxVCCJTSltHHNHdj+BIxP9JcFF2jgTwMOgC0uATwS/FUqOi4avqGegAzVrJY1zOqq61cBwwuSLwgIAuoF3MWNUgTMItqMtwBHgrcPhb+AWsDnAh2QlbgNOofbIUXEmUBNDd1Cyrmq6gA3ACmAB8Av4hnpnH0LdCkFUgMvG71FgcYhtwUtuPbDci/PDG/PMizPmyLPhxN2RJabkNgFgFdFbSJtlAXHWxRgPasEajzkmkB6SzxhpjnuS5CRf5pZKHGWArWIg/8W30WHUVNZsHkuMpN8o56DWh2YyhnoWcnJycqYxfwFnuMfy36Me/wAAAABJRU5ErkJggg==;" vertex="1" parent="n.arb">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.log" value="&lt;b&gt;Lock log&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="810" y="80" width="240" height="570" 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+gvaeTAAAB9ElEQVRoge3YvY9MURjH8Q8hhMR62YKIAoleIUS8lBIv0UhEolJS+Q/0uo1oKLQUOlsQ3SZIJBIFEhReG5FBkJVdRnHmrmP23N2bDffMcL7Jk9x5Zs69z++ec555zkOh8H+zKOFbi9VtB9KAH3iF73U/GME4ugNsH3CiTsDYAATYxCaxqQp6cSRgT52yAWMZdlYfYgHL249FB2dwFLcj/xUcwjlMJcYlY32k/eVwKnr+SrzHXb8nl9TSPll9Gc9ADp5F11/wFs+FICueNr1Zjhm4hqW95x8QUmQH23q+ETxIjJuZgdwCunghLJvpyPcVE3hXMyYp4FYmAQuxfSkBh4UpzB3cfHYPS6qg+0uJvcI/3WhKYWam8RAX8DlzLIUZ+pfQbhzHhgyxzMeUkFIvCllqFgcNxya+I9rEMcOURvdXQcelxMaUqhZ4g/vCgaViUkiXnZoxyXI6B9exGTtwRBDxEduxC1uF1FlLbgFjfpXL43iMG3jS83Vwea4b5BawJbpegfV9PsIs1JLczS1yXqhGX+Is1vXsEq4KJ6/TTW+WKlsH1Y5VQcdLaKKp0sx8EzLULNbgpvxvdy77pO8skGpsjWJV4/fRHl28lj7kDy+ltdiyldbiIFBai3/SSmsxprQWF2iltVhRWot/mdJaLBT+RX4CFqUhUb2gGVAAAAAASUVORK5CYII=;" vertex="1" parent="n.log">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="n.h" value="&lt;b&gt;Current holder&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="1160" y="80" width="240" height="570" 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+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.h">
          <mxGeometry x="9" y="17" width="24" height="24" as="geometry" />
        </mxCell>
        <mxCell id="_m5" value="1. acquire · wait ≤ 10 s" 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.1614;exitDx=0;exitDy=0;entryX=0.5;entryY=0.1614;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.w" target="n.arb">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m6" value="2. Txn: key absent?" 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.2316;exitDx=0;exitDy=0;entryX=0.5;entryY=0.2316;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.arb" target="n.log">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m7" value="3. held · revision R0" 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.3018;exitDx=0;exitDy=0;entryX=0.5;entryY=0.3018;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.log" target="n.arb">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m8" value="4. enqueue · position 3 of 40 max" 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.3719;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4140;entryDx=0;entryDy=0;align=left;spacingLeft=6;" edge="1" parent="1" source="n.arb" target="n.arb">
          <mxGeometry relative="1" as="geometry">
            <Array as="points">
              <mxPoint x="650" y="290" />
              <mxPoint x="650" y="320" />
            </Array>
          </mxGeometry>
        </mxCell>
        <mxCell id="_m9" value="5. watch key from R0" 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.4632;exitDx=0;exitDy=0;entryX=0.5;entryY=0.4632;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.arb" target="n.log">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m10" value="6. release" 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.5333;exitDx=0;exitDy=0;entryX=0.5;entryY=0.5333;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.h" target="n.log">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m11" value="7. delete 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.6035;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6035;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.log" target="n.arb">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m12" value="8. Txn for queue head" 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.6737;exitDx=0;exitDy=0;entryX=0.5;entryY=0.6737;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.arb" target="n.log">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m13" value="9. committed · token" 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.7439;exitDx=0;exitDy=0;entryX=0.5;entryY=0.7439;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.log" target="n.arb">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m14" value="10. granted · token" 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.8140;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8140;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.arb" target="n.w">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="_m15" value="11. or: deadline → not granted" 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.8842;exitDx=0;exitDy=0;entryX=0.5;entryY=0.8842;entryDx=0;entryDy=0;" edge="1" parent="1" source="n.arb" target="n.w">
          <mxGeometry relative="1" as="geometry" />
        </mxCell>
        <mxCell id="title" value="Wait Mode Under Contention" 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="A notification only triggers an attempt. A lost event falls back to a 1 s jittered retry, never to a grant." 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="700" 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="720" width="1410" height="10" as="geometry" />
        </mxCell>
        <mxCell id="foot" value="v 1.0   ·   owner Platform Architecture   ·   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="730" width="1410" height="10" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
