Перейти к основному содержимому

ADR-<номер>: <Название Решения>

Статус

Proposed / Accepted / Deprecated / Superseded by ADR-<номер>

Дата

<YYYY-MM-DD>

Назначение

Кратко опиши, какой архитектурный вопрос фиксируется и почему его нужно вынести в отдельное решение.

Контекст

Опиши:

  • проблему и ее признаки;
  • ограничения текущей платформы;
  • затронутые сервисы, данные, команды и процессы;
  • нефункциональные требования;
  • ссылки на source-of-truth документы.

Решение

Кратко и однозначно зафиксируй выбранное решение.

Область Действия

ОбластьВходитНе входит
Сервисы<service list><excluded services>
Контракты<API/events/models><out of scope>
Данные<entities/projections/reports><out of scope>
Эксплуатация<dashboards/runbooks/alerts><out of scope>

Варианты

ВариантОписаниеПлюсыМинусыПричина Решения
<Option A><описание><benefits><tradeoffs><accepted/rejected reason>

Последствия

ТипПоследствиеКомпенсация
Архитектура<impact><mitigation>
Безопасность<impact><mitigation>
Данные<impact><mitigation>
Эксплуатация<impact><mitigation>

Затронутые Контракты И Совместимость

КонтрактВерсияСовместимостьМиграция
<API/Event/Model><version><backward compatible/breaking><plan>

Нефункциональные Требования

ТребованиеЦельПроверка
Доступность<SLO><test/monitor>
Задержка<target><metric>
Безопасность<control><review/test>
Наблюдаемость<logs/metrics/traces><dashboard/alert>

План Внедрения

ЭтапДействиеКритерий успехаРиск
<stage><action><metric/check><risk>

План Отката Или Forward-Fix

СценарийДействиеУсловие Применения
<scenario><rollback or forward-fix><when>

Изменения В Документации

  • Обновить overview/rules: <links>;
  • Обновить API или events: <links>;
  • Обновить entities/models: <links>;
  • Обновить runbooks/dashboards: <links>.

Согласование

РольReviewerДатаРезультат
Архитектура<name><date><approved/changes requested>
Безопасность<name><date><approved/changes requested>
Эксплуатация<name><date><approved/changes requested>

Обратные ссылки

Автоссылки: где используется этот документ.