Процесс ADR
Когда нужен ADR
- Выбор технологии (БД, брокер, фреймворк).
- Принципиальное архитектурное решение, влияющее на несколько модулей.
- Отказ от ранее принятого решения (с
superseded by). - Неочевидный trade-off.
Когда НЕ нужен ADR
- Реализационные детали в одном модуле.
- Простые технические выборы (имя функции, структура файлов).
- Временные решения (помечаются TODO в коде + issue).
Процесс
- Скопировать
../20-architecture/adr/TEMPLATE.mdс новым номером (следующий после последнего). - Заполнить секции: Context, Decision, Consequences, Alternatives considered.
- Выставить
Status: proposed. - Создать PR, @-упомянуть заинтересованных.
- Обсудить. При необходимости — итерировать.
- После достижения согласия —
Status: accepted,Date: <сегодня>, merge.
После merge
ADR иммутабелен. Правки только:
- исправления опечаток;
- смена статуса на
deprecatedилиsuperseded by ADR-NNNN.
Нумерация
Сквозная от 0001. Не переиспользовать.
Связи
- В других документах ссылаться на ADR:
[ADR-0002](../20-architecture/adr/0002-kafka-as-event-bus.md). - В
principles.mdиdata-storage-decisions.md— ссылка в “References” каждого принципа.