Files
progcode/web/public/assets/editorial/2026/resilience-2026-limit-feedback-loop.svg
T
huncode 9812aa0c63
Build and deploy / deploy (push) Successful in 17s
revise February 2026 resilience articles
2026-07-31 18:59:19 +03:00

57 lines
5.3 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="800" viewBox="0 0 1200 800" role="img" aria-labelledby="title desc">
<title id="title">Контур review для fixed сценария устойчивости</title>
<desc id="desc">Последовательность начинается с именованного synthetic failure injection, проходит через trace и четыре проверки ограничений. Красные ветви останавливают review, зелёная ветвь передаёт карточку только на synthetic resilience review.</desc>
<defs>
<marker id="arrow" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto">
<path d="M0,0 L12,6 L0,12 Z" fill="#355070"/>
</marker>
<marker id="red-arrow" markerWidth="12" markerHeight="12" refX="10" refY="6" orient="auto">
<path d="M0,0 L12,6 L0,12 Z" fill="#b42318"/>
</marker>
</defs>
<rect width="1200" height="800" fill="#f8fafc"/>
<rect x="38" y="30" width="1124" height="86" rx="18" fill="#102a43"/>
<text x="72" y="81" fill="#ffffff" font-family="Arial, sans-serif" font-size="38" font-weight="700">Контур review: сначала ограничить работу</text>
<text x="72" y="106" fill="#cfe8ff" font-family="Arial, sans-serif" font-size="22">Зелёный выход — synthetic hand-off; красный — stop без нового маршрута.</text>
<circle cx="160" cy="314" r="100" fill="#fff1f0" stroke="#b42318" stroke-width="4"/>
<text x="160" y="292" text-anchor="middle" fill="#7a271a" font-family="Arial, sans-serif" font-size="28" font-weight="700">1. named</text>
<text x="160" y="326" text-anchor="middle" fill="#7a271a" font-family="Arial, sans-serif" font-size="27">failure</text>
<text x="160" y="358" text-anchor="middle" fill="#7a271a" font-family="Arial, sans-serif" font-size="27">injection</text>
<circle cx="405" cy="314" r="100" fill="#e6f4ff" stroke="#2b6cb0" stroke-width="4"/>
<text x="405" y="292" text-anchor="middle" fill="#102a43" font-family="Arial, sans-serif" font-size="28" font-weight="700">2. read</text>
<text x="405" y="326" text-anchor="middle" fill="#102a43" font-family="Arial, sans-serif" font-size="27">fixed</text>
<text x="405" y="358" text-anchor="middle" fill="#102a43" font-family="Arial, sans-serif" font-size="27">trace</text>
<circle cx="650" cy="314" r="100" fill="#fff7d6" stroke="#b7791f" stroke-width="4"/>
<text x="650" y="276" text-anchor="middle" fill="#744210" font-family="Arial, sans-serif" font-size="27" font-weight="700">3. check</text>
<text x="650" y="310" text-anchor="middle" fill="#744210" font-family="Arial, sans-serif" font-size="25">retry owner</text>
<text x="650" y="342" text-anchor="middle" fill="#744210" font-family="Arial, sans-serif" font-size="25">fan-out</text>
<text x="650" y="374" text-anchor="middle" fill="#744210" font-family="Arial, sans-serif" font-size="25">fallback name</text>
<circle cx="895" cy="314" r="100" fill="#e7f8ef" stroke="#21865b" stroke-width="4"/>
<text x="895" y="276" text-anchor="middle" fill="#135d3d" font-family="Arial, sans-serif" font-size="27" font-weight="700">4. check</text>
<text x="895" y="310" text-anchor="middle" fill="#135d3d" font-family="Arial, sans-serif" font-size="25">limit point</text>
<text x="895" y="342" text-anchor="middle" fill="#135d3d" font-family="Arial, sans-serif" font-size="25">comparison key</text>
<text x="895" y="374" text-anchor="middle" fill="#135d3d" font-family="Arial, sans-serif" font-size="25">terminal action</text>
<path d="M260 314 H285" fill="none" stroke="#355070" stroke-width="6" marker-end="url(#arrow)"/>
<path d="M505 314 H530" fill="none" stroke="#355070" stroke-width="6" marker-end="url(#arrow)"/>
<path d="M750 314 H775" fill="none" stroke="#355070" stroke-width="6" marker-end="url(#arrow)"/>
<rect x="842" y="536" width="316" height="122" rx="18" fill="#135d3d"/>
<text x="1000" y="580" text-anchor="middle" fill="#ffffff" font-family="Arial, sans-serif" font-size="29" font-weight="700">synthetic review</text>
<text x="1000" y="616" text-anchor="middle" fill="#d4f5df" font-family="Arial, sans-serif" font-size="24">human hand-off only</text>
<path d="M895 414 V516" fill="none" stroke="#21865b" stroke-width="6" marker-end="url(#arrow)"/>
<rect x="48" y="534" width="496" height="126" rx="18" fill="#fff1f0" stroke="#b42318" stroke-width="4"/>
<text x="296" y="578" text-anchor="middle" fill="#7a271a" font-family="Arial, sans-serif" font-size="30" font-weight="700">stop and repair record</text>
<text x="296" y="614" text-anchor="middle" fill="#7a271a" font-family="Arial, sans-serif" font-size="24">two retry owners, unnamed fallback,</text>
<text x="296" y="642" text-anchor="middle" fill="#7a271a" font-family="Arial, sans-serif" font-size="24">wide fan-out or mismatch</text>
<path d="M650 414 C620 492, 535 530, 550 568" fill="none" stroke="#b42318" stroke-width="6" stroke-dasharray="14 10" marker-end="url(#red-arrow)"/>
<path d="M895 414 C830 485, 610 516, 544 584" fill="none" stroke="#b42318" stroke-width="6" stroke-dasharray="14 10" marker-end="url(#red-arrow)"/>
<text x="58" y="726" fill="#486581" font-family="Arial, sans-serif" font-size="24">No network, service, clock, telemetry or production claim exists inside this loop.</text>
</svg>