Проверяет умение выбрать архитектуру в зависимости от контекста проекта.
Нет универсально лучшего варианта: монолит проще в разработке, отладке и развертывании, подходит для небольших команд и проектов с невысокой нагрузкой. Микросервисы дают гибкость в масштабировании, независимую разработку и устойчивость, но требуют развитого DevOps, сложной интеграции и мониторинга. Выбор зависит от масштаба команды, требований к отказоустойчивости и скорости выпуска фич.
Монолит:
Плюсы: простая сборка, единый контекст, меньше сетевых вызовов, быстрая отладка.
Минусы: трудности масштабирования отдельных компонентов, большие артефакты, риск «болезни большого монолита».
Микросервисы:
Плюсы: независимые команды, изолированные сбои, гибкое масштабирование, технология под каждый сервис.
Минусы: сетевые задержки, распределённая транзакционность, DevOps-утяжеление.
Критерии выбора:
Размер команды и проекта.
Требования к надёжности и масштабированию.
Опыт DevOps и готовность инвестировать в инфраструктуру.
Гибридные подходы:
Модульный монолит с чёткими внутренними границами и возможностью эволюции в микросервисы по необходимости.
Вывод:
Начинать с монолита при небольших объёмах, а при росте и появлении узких мест эволюционировать к микросервисам.