K
- Необходимость управлять группой транзакций, если она затрагивает несколько сервисов
- Зависимости между микросервисами, которые сложно отследить.
- Не удобное использование данных для аналитики, так как они разнесены.
Для уменьшения связанности и управления транзакциями лучше всего использовать паттерн saga, где есть управляющий сервис, который оркестрирует микросервисы. Это может быть даже само API, но лучше делать отдельный сервис под конкретные доменные области, чтобы например управление заказами не замешивались с статьями для сайта.
Можно обойтись без управляющего сервиса, тогда саги нужно вносить внутрь самих сервисов и каждый инициализирует свою сагу.
Для обмена также рекомендую Kafka или RMQ (сам всегда использую RMQ). Главное увлекаясь микросервисами не сделать nano сервисы) Для этого советую почитать про DDD.


