Эти четыре этапа показывают, как мне кажется, естественный ход вещей:
1. Вначале небольшое приложение решает одну бизнес-задачу. Со временем в него добавляют много всего, и оно превращается в неповоротливый монолит.
2. При первой попытке разделить монолит многие команды оказываются не готовы к возрастающей сложности. Монолит делится на много микросервисов, но из-за большого количество взаимосвязей получается тот же монолит, только с новыми проблемами: простейшие задачи типа трейсинга запроса или мониторинга инфраструктуры становятся вызовом для команды разработки.
3. Когда сложности решаются, получается стройная и масштабируемая архитектура. Добавление новых микросервисов линейно, а не экспоненциально, повышает сложность.
4. На последнем этапе приходит заказчик и резонно говорит, что раз есть готовые решения бизнес-задач, то давайте делать новые продукты без разработки. Будем соединять готовые независимые блоки в новые бизнес-процессы через оркестратор.
Понимание того, на каком этапе вы сейчас находитесь, даст вам ясную картину плюсов и минусов текущего состояния дел, а также план по переходу на следующий этап, если это необходимо для вашего бизнеса.