Depository of News

Как ломается модульный монолит и как с этим бороться

habrahabr.ru · world

В микросервисах логические границы удерживаются границами процесса и хранилища. Для пересечения надо явно написать удаленный вызов, сделать контракт и обновить как минимум два сервиса. В монолите нет механизма контроля логических границ. Одна часть кода в любой момент может сослаться на другую, сборка и тесты это пропустят. Даже в рантайме может может все работать без ошибок. Но таких ссылок станет много и монолит превратится в big-ball-of-mud. Эти же явные границы микросервисов помогают настраивать деплой. Структура сервисов и их зависимости видны в коде (не всегда очевидно, но всегда явно) и “случайно” их нарушить сложно. В модульном монолите структура деплоя не отражена вообще. В прошлой статье я описал как сделать контроль зависимостей между модулями в рантайме, но хотелось бы раньше. Закончил статью списком поломок, которые не замечают ни сборка, ни локальная отладка. В этой статье я покажу как превратить ошибки нарушения границ и деплоя в ошибки компиляции и красные тесты . Читать далее

Read full article →