Good service boundaries follow business capabilities, not technical layers. Domain-Driven Design (DDD) gives a precise tool for this: the bounded context — a boundary within which a domain model and its terms are consistent.
Bounded context
The word "Customer" can mean different things in different contexts. Each bounded context owns its own model, and a microservice typically maps to one context.
┌───────────────────┐ ┌────────────────────┐
│ Sales context │ │ Support context │
│ Customer = │ │ Customer = │
│ leads, orders │ │ tickets, SLAs │
└───────────────────┘ └────────────────────┘
one service another service
