E-01 · Реестр организационных ограничений#
Ведётся с: 2026-09-16 · пополняется каждым ADR
Сюда выносятся записи «не используем, потому что…» из колонки «статус у нас» документов решений. Смысл выноса один: пока такая запись лежит внутри одного ADR, её не видит тот, кто через полгода снова предложит тот же инструмент. Разговор начинается с нуля, и заканчивается тем же выводом.
У каждой записи обязательны дата и условие пересмотра. Запись без условия пересмотра — это не решение, а запрет, и она устаревает молча.
Не используем#
| Что | Почему | С какого ADR | Условие пересмотра |
|---|---|---|---|
| Apache Cassandra | Нет опыта эксплуатации, нет платформенной команды, выделенного дежурства нет | ADR-0001 · 2026-09-16 | Появилась платформенная команда или выделенное дежурство |
| Управляемое документное хранилище | Не даёт выигрыша ни по одной оси выбора хранилища, проигрывает по операционной стоимости и гибкости запросов | ADR-0001 · 2026-09-16 | Появилась модель данных, плохо ложащаяся на реляционную — например, схемы залов произвольной структуры от организаторов |
| Управляемые сервисы других облачных провайдеров | Один провайдер по решению компании | ADR-0001 · 2026-09-16 | Компания добавила или сменила провайдера |
| Самостоятельно разворачиваемые хранилища любого типа | Эксплуатировать некому: четыре разработчика, дежурство по очереди | ADR-0001 · 2026-09-16 | То же, что у Cassandra |
| Микросервисы | Нет наблюдаемости, трассировки и автоматического выката — для микросервисов это входное требование; одна команда на все кандидаты | ADR-0002 · 2026-09-16 | Появилась вторая команда-владелец или построены наблюдаемость, трассировка и автовыкат |
| Разрез по профилю нагрузки как граница сервиса | Путь чтения не имеет своего языка, инвариантов и владельца данных: это проекция, а не ограниченный контекст. Решается кэшем | ADR-0002 · 2026-09-16 | У пути чтения появились собственные данные и собственный владелец |
| Движок оркестрации процессов | Нет опыта у команды; процесс один, короткий и однотипный — своя таблица состояний дешевле | ADR-0003 · 2026-09-16 | Появился второй-третий длительный процесс или процесс стал жить дольше суток |
| Синхронное подтверждение оплаты | Провайдер отвечает за секунды с хвостом в десятки; держать запрос пользователя столько в окно старта продаж нельзя | ADR-0003 · 2026-09-16 | Провайдер даёт синхронный ответ с гарантией по времени |
| Инвалидация кэша схемы зала удалением ключа | 300 записей/с обнуляют ключ быстрее, чем он используется: время жизни 3 мс, hit ratio около нуля | ADR-0004 · 2026-09-16 | Частота записей в одну схему упала на порядок |
| Общий кэш для схемы зала | Один горячий ключ — весь пик приходит на один узел кэша | ADR-0004 · 2026-09-16 | Ключей стало много и они равномерны |
Используем#
| Что | С какого ADR |
|---|---|
| Управляемый PostgreSQL — источник истины | ADR-0001 · 2026-09-16 |
| Модульный монолит, границы модулей проверяются на сборке | ADR-0002 · 2026-09-16 |
Ячейка aeo: асинхронно, итоговая согласованность, свой оркестратор — для процесса оплаты |
ADR-0003 · 2026-09-16 |
| Локальный кэш схемы зала в процессе, TTL 1 с, single-flight | ADR-0004 · 2026-09-16 |
Не рассматривали#
- Деградация при отказе кэша — названа обязательной в ADR-0004, но как решение не принята: это отдельное продуктовое решение уровня W7, документа под него в наборе нет. До его принятия кэш вводить нельзя.
Раздел существует, чтобы отличать «решили не брать» от «до этого не дошли»: второе не является решением и не нуждается в условии пересмотра, но и ссылаться на него как на решение нельзя.
Замечание о форме#
Этот реестр — артефакт проекта, как и ADR: он описывает конкретную организацию, а не метод. Правило, по которому он заводится, живёт в D-01, раздел 4: когда записей «не используем» набирается больше десятка, они выносятся из документов решений в общий реестр.
Здесь их четыре после первого ADR, шесть после второго, восемь после третьего и десять после четвёртого — порог в «больше десятка» пройден к концу прогона, то есть примерно вчетверо быстрее, чем предполагалось при написании правила. Форма перенесена в метод: decisions/03-constraints-registry.md v1.0. Этот файл остаётся её первым заполненным экземпляром.