Begin with a responsibility
Before dividing an application into services, write down what each part is responsible for. In a shopping flow, catalog browsing, cart state, and checkout are useful starting points for that discussion.
Ask about the handoff
For each boundary, ask what information crosses it, what a caller needs back, and what should happen if the request cannot finish. A small, explicit contract makes the conversation concrete.
Include the data
Record which part owns each piece of data and which operations need to stay together. This checklist is a design prompt, not a rule that every feature needs its own microservice.
A useful starting checklist
What is the responsibility? Who calls it? What data does it own? What happens on failure? How will the behavior be tested? Answer those before adding more moving parts.