Как стать автором
Обновить

Комментарии 3

Сколько у вас классов в условном rabbitmq-client? На сколько практично выделять подобный код в отдельный гредл-модуль?

мы решили попробовать подход “чистой архитектуры”, организовав код в наших микросервисах в виде слоев.

The layered architecture style also falls into several architectural anti-patterns, including the architecture by implication anti-pattern and the accidental architecture anti-pattern. If a developer or architect is unsure which architecture style they are using, or if an Agile development team “just starts coding,” chances are good that it is the layered architecture style they are implementing.

Говоря проще: "делаем многослойку, потому что других архитектур просто не знаем и не умеем" :)

Главные особенности, их достоинства и недостатки не показали.
Первое, принципиально отличие микросервиса — это масштабируемость отдельных нагруженных модулей.
Монолит очень тяжело писать под работу в кластере, если с нуля, а если переделывать, то обычно дешевле все переписать.
Соответственно, у Вас в статье ни слово, про кластер, про балансировку нагрузки, шардинг и т.п.
Микросервисы тоже можно написать исходя из того, что каждый сервис имеет монопольный доступ к данным или монопольно определяет состояние объектов. Переделка такого подхода тоже будет дорого стоить.
Я бы выделил два недостатка микросервисов: первый, сложность тестирования, и второй, появления нового уровня абстракции — конфигурация версий модулей в рабочем окружение. Всегда есть вероятность получить не консистентную конфигурацию, неразрешимые зависимости в рантейме, несовместимые версии и т.п.
В одном модуле, перенос строки будет в другом формате, и рухнет вся система. Привет, «одноклассникам», если кто помнить эту эпопею.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.