revise July 2022 poor network articles
Build and deploy / deploy (push) Successful in 13s

This commit is contained in:
2026-07-31 13:51:28 +03:00
parent 2bfc9d929f
commit ec1fa93fd2
7 changed files with 673 additions and 1 deletions
@@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="540" viewBox="0 0 900 540" role="img" aria-labelledby="title desc">
<title id="title">Контракт ключей повторной отправки</title>
<desc id="desc">Схема связывает версию черновика с request key, две попытки с разными attempt key и acknowledgement, которое проходит проверку всех полей. Старый ответ отмечен как stale.</desc>
<defs><marker id="arrow" markerWidth="10" markerHeight="10" refX="8" refY="5" orient="auto"><path d="M0 0L10 5L0 10z" fill="#334155"/></marker><style>.box{stroke:#334155;stroke-width:3;rx:14}.h{font:700 23px Arial,sans-serif;fill:#0f172a}.t{font:18px Arial,sans-serif;fill:#334155}.s{font:15px Arial,sans-serif;fill:#64748b}.line{stroke:#334155;stroke-width:4;fill:none;marker-end:url(#arrow)}.ok{fill:#166534;font:700 17px Arial,sans-serif}.bad{fill:#b91c1c;font:700 17px Arial,sans-serif}</style></defs>
<rect width="900" height="540" fill="#f8fafc"/>
<text x="42" y="47" class="h">Контракт retry: один logical request, разные попытки</text>
<rect x="46" y="106" width="195" height="120" class="box" fill="#e0f2fe"/><text x="67" y="145" class="h">draft v1</text><text x="67" y="177" class="t">requestKey</text><text x="67" y="203" class="t">draft-v1</text>
<rect x="347" y="84" width="205" height="142" class="box" fill="#fef3c7"/><text x="368" y="123" class="h">attempt-01</text><text x="368" y="155" class="t">ожидает ack</text><text x="368" y="185" class="s">unknown outcome</text>
<rect x="347" y="316" width="205" height="142" class="box" fill="#dbeafe"/><text x="368" y="355" class="h">attempt-02</text><text x="368" y="387" class="t">тот же draft-v1</text><text x="368" y="417" class="s">один guard retry</text>
<rect x="658" y="84" width="196" height="142" class="box" fill="#fee2e2"/><text x="679" y="123" class="h">старый ack</text><text x="679" y="155" class="t">attempt-01</text><text x="679" y="188" class="bad">STALE: ignore</text>
<rect x="658" y="316" width="196" height="142" class="box" fill="#dcfce7"/><text x="679" y="355" class="h">accepted ack</text><text x="679" y="387" class="t">attempt-02 + v1</text><text x="679" y="420" class="ok">commit once</text>
<path d="M241 166H338" class="line"/><path d="M451 226V307" class="line"/><path d="M552 155H648" class="line"/><path d="M552 387H648" class="line"/>
<text x="50" y="497" class="s">Commit требует совпадения request key, current attempt key и accepted version. Это учебная схема, не ответ сервера.</text>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB