Skip to content

Instantly share code, notes, and snippets.

@tlkahn
Created August 31, 2026 06:40
Show Gist options
  • Select an option

  • Save tlkahn/f658c904b8d51fe8d54bb748a78e7167 to your computer and use it in GitHub Desktop.

Select an option

Save tlkahn/f658c904b8d51fe8d54bb748a78e7167 to your computer and use it in GitHub Desktop.
plantuml from inventory-bootstrap-ideation.md
Display the source blob
Display the rendered blob
Raw
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" data-diagram-type="DESCRIPTION" height="790px" preserveAspectRatio="none" style="width:832px;height:790px;background:#FFFFFF;" version="1.1" viewBox="0 0 832 790" width="832px" zoomAndPan="magnify"><defs/><g><g class="title" data-source-line="1"><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="700" lengthAdjust="spacing" textLength="181.2891" x="322.2973" y="23.5352">Problem split (stable ids)</text></g><!--cluster OP--><g class="cluster" data-qualified-name="OP" data-source-line="3" id="ent0001"><rect fill="none" height="463.58" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1;" width="180" x="7" y="44.4883"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="700" lengthAdjust="spacing" textLength="123.833" x="35.0835" y="60.0234">Operator session</text></g><!--cluster PA--><g class="cluster" data-qualified-name="PA" data-source-line="10" id="ent0006"><rect fill="#ADD8E6" height="210.7" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1;" width="198" x="319" y="566.1983"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="700" lengthAdjust="spacing" textLength="176.0391" x="329.9805" y="581.7334">P-A Inventory bootstrap</text></g><!--cluster PB--><g class="cluster" data-qualified-name="PB" data-source-line="15" id="ent0009"><rect fill="#FFFFE0" height="103.49" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:1;" width="223" x="219" y="413.7083"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="700" lengthAdjust="spacing" textLength="150.7666" x="255.1167" y="429.2434">P-B Transfer resume</text></g><!--entity COLD--><g class="entity" data-qualified-name="OP.COLD" data-source-line="4" id="ent0002"><ellipse cx="102.9988" cy="104.4406" fill="#F1F1F1" rx="68.0288" ry="24.9523" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="97.6855" x="54.156" y="102.9361">cold list+head</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="70.1641" x="67.9167" y="119.4244">~O(N) RTT</text></g><!--entity PLAN--><g class="entity" data-qualified-name="OP.PLAN" data-source-line="5" id="ent0003"><ellipse cx="103.0029" cy="205.0473" fill="#F1F1F1" rx="23.7029" ry="14.659" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="29.2783" x="88.3637" y="209.7914">plan</text></g><!--entity XFER--><g class="entity" data-qualified-name="OP.XFER" data-source-line="6" id="ent0004"><ellipse cx="103.0026" cy="304.2073" fill="#F1F1F1" rx="45.6626" ry="14.659" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="60.334" x="72.8356" y="308.9514">transfers</text></g><!--entity COMMIT--><g class="entity" data-qualified-name="OP.COMMIT" data-source-line="7" id="ent0005"><ellipse cx="96.9983" cy="474.9559" fill="#F1F1F1" rx="73.5383" ry="17.1077" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="114.4814" x="39.7575" y="479.7001">manifest commit</text></g><!--entity RM--><g class="entity" data-qualified-name="PA.RM" data-source-line="11" id="ent0007"><path d="M352.06,611.6983 L352.06,643.1866 A2.5,2.5 0 0 0 354.56,645.6866 L471.436,645.6866 A2.5,2.5 0 0 0 473.936,643.1866 L473.936,619.1983 L463.936,609.1983 L354.56,609.1983 A2.5,2.5 0 0 0 352.06,611.6983" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;"/><path d="M463.936,609.1983 L463.936,616.6983 A2.5,2.5 0 0 0 466.436,619.1983 L473.936,619.1983" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="101.876" x="362.06" y="632.7334">remote v1.json</text></g><!--entity LC--><g class="entity" data-qualified-name="PA.LC" data-source-line="12" id="ent0008"><path d="M343.04,718.9083 L343.04,750.3966 A2.5,2.5 0 0 0 345.54,752.8966 L482.4589,752.8966 A2.5,2.5 0 0 0 484.9589,750.3966 L484.9589,726.4083 L474.9589,716.4083 L345.54,716.4083 A2.5,2.5 0 0 0 343.04,718.9083" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;"/><path d="M474.9589,716.4083 L474.9589,723.9083 A2.5,2.5 0 0 0 477.4589,726.4083 L484.9589,726.4083" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="121.9189" x="353.04" y="739.9434">local cache mirror</text></g><!--entity RJ--><g class="entity" data-qualified-name="PB.RJ" data-source-line="16" id="ent0010"><path d="M243.27,459.2083 L243.27,490.6966 A2.5,2.5 0 0 0 245.77,493.1966 L396.2378,493.1966 A2.5,2.5 0 0 0 398.7378,490.6966 L398.7378,466.7083 L388.7378,456.7083 L245.77,456.7083 A2.5,2.5 0 0 0 243.27,459.2083" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;"/><path d="M388.7378,456.7083 L388.7378,464.2083 A2.5,2.5 0 0 0 391.2378,466.7083 L398.7378,466.7083" fill="#F1F1F1" style="stroke:#181818;stroke-width:0.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="135.4678" x="253.27" y="480.2434">optional run journal</text></g><g class="entity" data-qualified-name="GMN18" data-source-line="29" id="ent0019"><path d="M544.12,599.4783 L544.12,655.4099 L817.8837,655.4099 L817.8837,609.4783 L807.8837,599.4783 L544.12,599.4783" fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><path d="M807.8837,599.4783 L807.8837,609.4783 L817.8837,609.4783 L807.8837,599.4783" fill="#FEFFDD" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="172.9673" x="550.12" y="617.0466">Authority must stay remote</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="105.2886" x="550.12" y="632.3572">(or cold live list).</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="252.7637" x="550.12" y="647.6677">Local inventory-as-base = vision break.</text></g><g class="entity" data-qualified-name="GMN21" data-source-line="35" id="ent0022"><path d="M540.48,454.6483 L540.48,495.2694 L801.5103,495.2694 L801.5103,464.6483 L791.5103,454.6483 L540.48,454.6483" fill="#FEFFDD" style="stroke:#181818;stroke-width:0.5;"/><path d="M791.5103,454.6483 L791.5103,464.6483 L801.5103,464.6483 L791.5103,454.6483" fill="#FEFFDD" style="stroke:#181818;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="193.1719" x="546.48" y="472.2166">Journal is per-run, per-device.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="240.0303" x="546.48" y="487.5272">Must not feed build_plan remote side.</text></g><!--link COLD to PLAN--><g class="link" data-entity-1="ent0002" data-entity-2="ent0003" data-link-type="dependency" data-source-line="19" id="lnk11"><path d="M103,129.8183 C103,148.7483 103,169.3483 103,184.9983" fill="none" id="COLD-to-PLAN" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="103,189.9983,107,180.9983,103,184.9983,99,180.9983,103,189.9983" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link PLAN to XFER--><g class="link" data-entity-1="ent0003" data-entity-2="ent0004" data-link-type="dependency" data-source-line="20" id="lnk12"><path d="M103,219.9683 C103,238.4383 103,265.8583 103,284.3183" fill="none" id="PLAN-to-XFER" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="103,289.3183,107,280.3183,103,284.3183,99,280.3183,103,289.3183" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link XFER to COMMIT--><g class="link" data-entity-1="ent0004" data-entity-2="ent0005" data-link-type="dependency" data-source-line="21" id="lnk13"><path d="M102.5,319.3083 C101.39,350.3583 98.9384,419.5215 97.7584,452.5715" fill="none" id="XFER-to-COMMIT" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="97.58,457.5683,101.8986,448.7167,97.7584,452.5715,93.9037,448.4313,97.58,457.5683" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link COMMIT to RM--><g class="link" data-entity-1="ent0005" data-entity-2="ent0007" data-link-type="dependency" data-source-line="22" id="lnk14"><path d="M128.16,490.7983 C186.71,518.6783 308.3656,576.6188 371.2656,606.5688" fill="none" id="COMMIT-to-RM" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="375.78,608.7183,369.3738,601.2376,371.2656,606.5688,365.9345,608.4606,375.78,608.7183" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link RM to LC--><g class="link" data-entity-1="ent0007" data-entity-2="ent0008" data-link-type="dependency" data-source-line="23" id="lnk15"><path d="M413.17,645.8183 C413.35,665.3083 413.6039,691.7485 413.7839,711.2585" fill="none" id="RM-to-LC" style="stroke:#181818;stroke-width:1;"/><polygon fill="#181818" points="413.83,716.2583,417.7468,707.2218,413.7839,711.2585,409.7471,707.2956,413.83,716.2583" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/></g><!--link COLD to RM--><g class="link" data-entity-1="ent0002" data-entity-2="ent0007" data-link-type="dependency" data-source-line="25" id="lnk16"><path d="M170.33,108.9583 C280.46,116.5583 487,139.4383 487,204.0483 C487,204.0483 487,204.0483 487,475.9583 C487,528.6483 453.1568,578.1727 431.4768,604.9427" fill="none" id="COLD-to-RM" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="#181818" points="428.33,608.8283,437.1027,604.3517,431.4768,604.9427,430.8857,599.3168,428.33,608.8283" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="66.6948" x="544.71" y="294.2766">gap today:</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="127.0864" x="514.5142" y="309.5872">result not published</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="180.1147" x="488" y="324.8977">unless repair / push success</text></g><!--link XFER to RJ--><g class="link" data-entity-1="ent0004" data-entity-2="ent0010" data-link-type="dependency" data-source-line="26" id="lnk17"><path d="M119.74,318.1683 C158.43,348.1183 250.1062,419.0776 294.1562,453.1776" fill="none" id="XFER-to-RJ" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="#181818" points="298.11,456.2383,293.4418,447.566,294.1562,453.1776,288.5447,453.8921,298.11,456.2383" style="stroke:#181818;stroke-width:1;stroke-linejoin:miter;stroke-miterlimit:10;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="66.6948" x="259.8076" y="371.2766">gap today:</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="160.3101" x="213" y="386.5872">no checkpoint of Ok keys</text></g><!--link PA to GMN18--><g class="link" data-entity-1="ent0006" data-entity-2="ent0019" data-link-type="association" data-source-line="29" id="lnk20"><path d="M517.0047,627.4483 C517.0491,627.4483 517.0936,627.4483 517.138,627.4483 C517.4936,627.4483 517.8492,627.4483 518.2048,627.4483 C521.0497,627.4483 523.8944,627.4483 526.7388,627.4483 C532.4275,627.4483 538.115,627.4483 543.8,627.4483" fill="none" id="PA-GMN18" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;"/></g><!--link PB to GMN21--><g class="link" data-entity-1="ent0009" data-entity-2="ent0022" data-link-type="association" data-source-line="35" id="lnk23"><path d="M442.3129,474.9583 C442.4507,474.9583 442.5885,474.9583 442.7262,474.9583 C443.2773,474.9583 443.8284,474.9583 444.3794,474.9583 C445.4816,474.9583 446.5837,474.9583 447.6858,474.9583 C452.0943,474.9583 456.5027,474.9583 460.9109,474.9583 C469.7275,474.9583 478.5438,474.9583 487.36,474.9583 C504.9925,474.9583 522.625,474.9583 540.26,474.9583" fill="none" id="PB-GMN21" style="stroke:#181818;stroke-width:1;stroke-dasharray:7,7;"/></g></g></svg>
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment