Что такое ADR (architecture decision record) и зачем записывать решения?
- Как фиксировать архитектурные решения?
ADR — короткая запись одного решения: контекст (что происходило и какие были ограничения), решение, рассмотренные варианты, последствия (что стало проще, что сложнее) и условия пересмотра. Хранится в репозитории, нумеруется, не переписывается: если решение меняется, пишут новый ADR, ссылаясь на старый. Через год ADR отвечает на вопрос «почему так сделано?» — и не даёт повторить старые споры или ошибки.
- Одна страница на решение
- Статус: предложено, принято, заменено ADR-0012
- Писать для значимых решений: выбор базы, схема авторизации, деление на сервисы
А ещё Без ADR новые люди либо боятся трогать странный код, либо ломают то, что было сделано не зря
Подробно
Пример:
ADR-0007: Очередь задач на PostgreSQL
Статус: принято, 2026-05-12
Контекст: нужны фоновые письма, нагрузка до 10 тыс./час,
команда из 3 человек, Redis нет.
Решение: таблица jobs + SKIP LOCKED, воркер на Python.
Альтернативы: Celery+Redis (новый компонент), Kafka (избыточно).
Последствия: транзакционность с заказами; нагрузка на базу.
Пересмотр: >100 тыс. задач/час или задержка >1 мин.Что хотят услышать
- Состав ADR.
- Хранение рядом с кодом и неизменность.
- Условия пересмотра.
- Польза для будущих участников.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Подробная схема всей архитектуры системы со всеми сервисами
- ✓Короткая неизменяемая запись решения с контекстом и последствиями
- ✗Документ, который переписывают при каждом изменении решения
- ✗Описание каждого мелкого изменения кода в дополнение к коммиту
Разбор темы
- Design doc, ADR и технический долг
Как написать design doc и провести обсуждение, зачем записывать решения в ADR и как договориться с бизнесом о работе с техническим долгом.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.