You can improve modularity without creating a network boundary. Distribution adds failure and coordination problems of its own.
What to look for
- 01
Separate a code-organization problem from an independent-deployment requirement.
- 02
Account for cross-service transactions and partial failure.
- 03
Understand the domain boundary before extracting a service.
Keep in mind
A 2015-era argument against unexamined enthusiasm, not proof that microservices are always a mistake. The argument concerns operational tradeoffs rather than a universal ban.
Try this next
For a proposed service extraction, name the owning team, data owner, failure modes, deployment benefit, and how the caller behaves during an outage.
Get the architecture templateNotes and exercises by Awesome CTO. The original work belongs to Sean Kelly.