Files
progcode/web/public/assets/editorial/2024/legacy-modernization-2024-strangler-map.svg
T
huncode e74907ff32
Build and deploy / deploy (push) Successful in 15s
revise January 2024 legacy modernization articles
2026-07-31 15:28:25 +03:00

42 lines
4.3 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" width="960" height="640" viewBox="0 0 960 640" role="img" aria-labelledby="title desc">
<title id="title">Карта измеримого шва при модернизации legacy-системы</title>
<desc id="desc">Клиентский запрос проходит через router. Старый и новый adapters разделены одним synthetic quote-preview швом, контрактом, владельцем и обратимым маршрутом. Данные и неизвестные эффекты остаются вне схемы.</desc>
<defs>
<marker id="arrow" viewBox="0 0 12 12" refX="10" refY="6" markerWidth="10" markerHeight="10" orient="auto-start-reverse">
<path d="M 0 0 L 12 6 L 0 12 z" fill="#25435f"/>
</marker>
</defs>
<rect width="960" height="640" fill="#f5f8fb"/>
<rect x="24" y="22" width="912" height="592" rx="24" fill="#ffffff" stroke="#bfd0df" stroke-width="2"/>
<text x="58" y="76" fill="#18324a" font-family="Arial, sans-serif" font-size="30" font-weight="700">Один измеримый шов вместо переписывания всего модуля</text>
<text x="58" y="112" fill="#496379" font-family="Arial, sans-serif" font-size="20">synthetic quote preview: один вход, один ответ, объявленный эффект и owner</text>
<rect x="58" y="218" width="176" height="112" rx="16" fill="#e7f2ff" stroke="#3d78ae" stroke-width="3"/>
<text x="146" y="262" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="24" font-weight="700">Client</text>
<text x="146" y="294" text-anchor="middle" fill="#496379" font-family="Arial, sans-serif" font-size="18">one request</text>
<line x1="234" y1="274" x2="320" y2="274" stroke="#25435f" stroke-width="4" marker-end="url(#arrow)"/>
<rect x="328" y="190" width="218" height="168" rx="18" fill="#edf7ee" stroke="#4e8b5a" stroke-width="3"/>
<text x="437" y="237" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="26" font-weight="700">Router</text>
<text x="437" y="272" text-anchor="middle" fill="#305842" font-family="Arial, sans-serif" font-size="19">route decision</text>
<text x="437" y="303" text-anchor="middle" fill="#305842" font-family="Arial, sans-serif" font-size="19">manual gate</text>
<text x="437" y="330" text-anchor="middle" fill="#305842" font-family="Arial, sans-serif" font-size="16">not an automatic release</text>
<line x1="546" y1="239" x2="630" y2="176" stroke="#25435f" stroke-width="4" marker-end="url(#arrow)"/>
<line x1="546" y1="309" x2="630" y2="372" stroke="#25435f" stroke-width="4" marker-end="url(#arrow)"/>
<rect x="638" y="112" width="242" height="132" rx="18" fill="#fff3df" stroke="#bd8135" stroke-width="3"/>
<text x="759" y="160" text-anchor="middle" fill="#5a3a10" font-family="Arial, sans-serif" font-size="25" font-weight="700">Legacy adapter</text>
<text x="759" y="193" text-anchor="middle" fill="#735021" font-family="Arial, sans-serif" font-size="18">old boundary stays</text>
<text x="759" y="218" text-anchor="middle" fill="#735021" font-family="Arial, sans-serif" font-size="18">owner: legacy path</text>
<rect x="638" y="342" width="242" height="132" rx="18" fill="#e9f0ff" stroke="#596fae" stroke-width="3"/>
<text x="759" y="390" text-anchor="middle" fill="#273d76" font-family="Arial, sans-serif" font-size="25" font-weight="700">Modern adapter</text>
<text x="759" y="423" text-anchor="middle" fill="#384f85" font-family="Arial, sans-serif" font-size="18">proposed new path</text>
<text x="759" y="448" text-anchor="middle" fill="#384f85" font-family="Arial, sans-serif" font-size="18">same declared contract</text>
<rect x="58" y="502" width="822" height="74" rx="14" fill="#f8fafc" stroke="#bfd0df" stroke-width="2" stroke-dasharray="8 7"/>
<text x="80" y="534" fill="#18324a" font-family="Arial, sans-serif" font-size="21" font-weight="700">Decision record:</text>
<text x="250" y="534" fill="#496379" font-family="Arial, sans-serif" font-size="20">contract • owner • evidence • return to legacy-only route</text>
<text x="80" y="561" fill="#8a4c39" font-family="Arial, sans-serif" font-size="18">Outside this map: real data recovery, unknown side effects, production traffic and parity evidence.</text>
</svg>