Модульный монолит: как разделить систему без микросервисов

Как построить модульный монолит: границы доменов, публичные интерфейсы, владение данными, зависимости, тесты и постепенное выделение сервисов.

Модульный монолит сохраняет простоту единого развертывания, но требует строгих внутренних границ, иначе аккуратная схема постепенно снова превращается в связанную систему со случайными зависимостями.

Разделите домены

Опишите ответственность модуля, его термины и владельца, не группируя код только по техническим слоям. Граница должна объясняться бизнесом.

Закройте внутренности

Оставьте небольшой публичный интерфейс, запретите прямой доступ к таблицам соседа и проверяйте зависимости автоматически. Договоренности забываются.

Готовьте извлечение

Для кандидата на отдельный сервис измеряйте нагрузку, частоту изменений и связи, постепенно отделяя данные. Не переносите хаос по сети.

Регулярно проверяйте карту зависимостей и обсуждайте нарушения на архитектурном ревью, поскольку реальная ценность подхода определяется не количеством папок, а возможностью безопасно менять один модуль без каскада неожиданных правок.

Сначала сравните монолит и микросервисы. Внутренние контракты обязательно версионируйте.