Skip to content

ADR-008: Монорепозиторий

Status: Accepted · Date: 2026-07-03

Компоненты: backend, agent, web, proto-контракт, деплой-артефакты. Контракт control plane связывает backend и агент; REST-контракт связывает backend и web.

Один репозиторий (структура). Изменение контракта и обеих его сторон — один атомарный PR. Единое версионирование тегом; совместимость разных версий backend/агента обеспечивается правилами эволюции proto, а не матрицей совместимости.

Отклонённые альтернативы

Section titled “Отклонённые альтернативы”

Мульти-репо (backend / agent / web / proto отдельно): каждое изменение контракта — 3–4 согласованных PR с зависимостями по порядку мержа; версия proto-модуля становится координационной точкой; CI не может проверить совместимость сторон до релиза.

  • (+) CI проверяет «сгенерируй из proto и сравни» для обеих сторон в одном прогоне.
  • (+) Агент физически не может импортировать внутренности backend — граница по Go-модулям внутри монорепо.
  • (−) Один репозиторий — один цикл релизов; независимый релиз только web-части неудобен (принято: web меняется вместе с API).