Files
progcode/web/public/assets/editorial/2024/adr-decisions-2024-alternatives-matrix.svg
T
huncode c8bb90f435
Build and deploy / deploy (push) Successful in 17s
revise September 2024 ADR decision articles
2026-07-31 16:22:39 +03:00

82 lines
5.0 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 960" role="img" aria-labelledby="title desc">
<title id="title">Матрица сравнения альтернатив в ADR</title>
<desc id="desc">Таблица трёх синтетических вариантов: direct read, bounded BFF cache и shared cache. Колонки показывают reversibility, evidence fit, constraint fit, operating cost и итоговый учебный score. Выбранный вариант выделен, а снизу указаны ограничение модели и review signal.</desc>
<defs>
<linearGradient id="background" x1="0" x2="1" y1="0" y2="1">
<stop offset="0" stop-color="#fbfcff"/>
<stop offset="1" stop-color="#f0f8f6"/>
</linearGradient>
<style>
.title { fill: #142b45; font: 700 34px Arial, sans-serif; }
.subtitle { fill: #58738e; font: 18px Arial, sans-serif; }
.header { fill: #385775; font: 700 16px Arial, sans-serif; }
.cell { fill: #183450; font: 17px Arial, sans-serif; }
.small { fill: #5e7489; font: 14px Arial, sans-serif; }
.caption { fill: #34536e; font: 15px Arial, sans-serif; }
.score { fill: #145f52; font: 700 21px Arial, sans-serif; }
.grid { stroke: #c7d9e7; stroke-width: 1.5; }
</style>
</defs>
<rect width="720" height="960" rx="32" fill="url(#background)"/>
<text x="48" y="62" class="title">ADR: матрица альтернатив</text>
<text x="48" y="92" class="subtitle">Одинаковые criteria делают цену выбора видимой до acceptance.</text>
<rect x="40" y="126" width="640" height="56" rx="14" fill="#dcebf5"/>
<text x="58" y="160" class="header">Вариант</text>
<text x="250" y="151" class="header">Reversi-</text>
<text x="250" y="171" class="header">bility</text>
<text x="344" y="151" class="header">Evidence</text>
<text x="344" y="171" class="header">fit</text>
<text x="435" y="151" class="header">Constraint</text>
<text x="435" y="171" class="header">fit</text>
<text x="536" y="151" class="header">Operating</text>
<text x="536" y="171" class="header">cost</text>
<text x="631" y="160" class="header">Score</text>
<rect x="40" y="182" width="640" height="150" fill="#ffffff"/>
<rect x="40" y="332" width="640" height="164" fill="#e7f5ef"/>
<rect x="40" y="496" width="640" height="150" fill="#ffffff"/>
<path d="M40 182 H680 M40 332 H680 M40 496 H680 M40 646 H680 M232 126 V646 M324 126 V646 M416 126 V646 M514 126 V646 M613 126 V646" class="grid"/>
<text x="58" y="220" class="cell">1. Direct source read</text>
<text x="58" y="248" class="small">least state</text>
<text x="58" y="271" class="small">repeat read stays</text>
<text x="58" y="301" class="small">no explicit freshness</text>
<text x="276" y="256" class="cell">3</text>
<text x="371" y="256" class="cell">1</text>
<text x="464" y="256" class="cell">1</text>
<text x="562" y="256" class="cell">1</text>
<text x="633" y="259" class="score">12</text>
<rect x="54" y="350" width="94" height="27" rx="13" fill="#1c8d70"/>
<text x="70" y="369" fill="#ffffff" font-family="Arial, sans-serif" font-size="15" font-weight="700">SELECTED</text>
<text x="58" y="408" class="cell">2. Bounded BFF cache</text>
<text x="58" y="436" class="small">expiry has one owner</text>
<text x="58" y="459" class="small">freshness is the cost</text>
<text x="276" y="432" class="cell">2</text>
<text x="371" y="432" class="cell">3</text>
<text x="464" y="432" class="cell">3</text>
<text x="562" y="432" class="cell">2</text>
<text x="633" y="435" class="score">23</text>
<text x="58" y="480" class="caption">Why: fit and evidence win; freshness price has an owner.</text>
<text x="58" y="534" class="cell">3. Shared cross-service cache</text>
<text x="58" y="562" class="small">reuse plus invalidation</text>
<text x="58" y="590" class="small">wider owner and rollback</text>
<text x="276" y="565" class="cell">1</text>
<text x="371" y="565" class="cell">2</text>
<text x="464" y="565" class="cell">2</text>
<text x="562" y="565" class="cell">3</text>
<text x="633" y="568" class="score">13</text>
<rect x="40" y="688" width="640" height="100" rx="18" fill="#fff1d9" stroke="#e3a044" stroke-width="2"/>
<text x="62" y="722" fill="#9a5b08" font-family="Arial, sans-serif" font-size="20" font-weight="700">Как читать score</text>
<text x="62" y="750" class="caption">2 × reversibility + 3 × evidence + 4 × fit − cost.</text>
<text x="62" y="774" class="small">Fixed synthetic formula; не metric и не permission.</text>
<rect x="40" y="812" width="640" height="100" rx="18" fill="#e9ecfb" stroke="#8372c4" stroke-width="2"/>
<text x="62" y="846" fill="#56438c" font-family="Arial, sans-serif" font-size="20" font-weight="700">Review signal</text>
<text x="62" y="874" class="caption">Contract, freshness or owner changed? Score не переписывают.</text>
<text x="62" y="898" class="small">Создают successor ADR и сохраняют accepted record.</text>
</svg>