Смотри. Уже прошло время когда все пилили монолиты на микросервисы. Щас
пошло переосмысление.
Объективно есть 2 причины пилить. Первое -
организационная. Команда по какой-то причине не хочет
или не может поддерживать приложение. Или там что-то с бизнесом. Слияние. Поглощение. Передача
проекта другой команде в поддержку. Тогда берут и ставят задачу раздела отвественностей.
Конвей про это писал еще.
И второе - это
баланс нагрузки и децентрализация. Про failover тут еще даже речи нет. Это
тяжелая тема и распилить монолит так чтобы его части были
отказоустойчивы очень трудно. Более
того в случае синхронных взаимодействий между частями микросервисов может быть даже
падение
перформанса. Да. Теоретики которые там пишут восторженные отзывы - совершенно игнорируют
накладные на RPC. И не упоминают что в монолите цена RPC была равна нулю. Иногда RPC заменяют
на MQ - но это новая архитектура и это надо полностью переделывать бизнес.
И что делать с
базой данных? Это тот еще вопрос. Я почти готов спорить что вы
базу пилить не будете.
И что в результате будет? Иммитация микро-сервисов? Где слабая связность?
Тоесть если у вас нет таких кричащих ситуаций что оргазниация требует или нужно баланс
нагрузки как-то разнести - то тебе вообще-вообще нет смысла ходить ни в какие микросервисы.
Но имеет смысл сделать модуляризацию монолита. Например что там...
application
- sales
- hiring
- userprofiles
Тоже очень полезно для управления сложностью. И пускай себе будет монолит зато будет сильный
контроль за изменениями.