Хорошие границы сервисов следуют бизнес-возможностям, а не техническим слоям. Domain-Driven Design (DDD) предоставляет для этого точный инструмент: bounded context — граница, в которой модель домена и её термины согласованы.
Bounded context
Слово "Customer" может иметь разные значения в разных контекстах. Каждый bounded context владеет своей моделью, а микросервис обычно соответствует одному контексту.
┌───────────────────┐ ┌────────────────────┐
│ Sales context │ │ Support context │
│ Customer = │ │ Customer = │
│ leads, orders │ │ tickets, SLAs │
└───────────────────┘ └────────────────────┘
one service another service
