Microservices
microservice, micro services, micro-services, service-oriented architectureDefinition
An architecture that splits an application into small services, each owning its own data and deployed independently, communicating over the network — as against a monolith, which is one deployable unit
The thing being bought is independent deployment, and the price is that every function call you removed became a network call that can fail, arrive twice, or arrive late. A transaction that a database used to guarantee now needs a saga; a stack trace that used to be one file now spans four services and a queue. Worth it when teams are the bottleneck and each can own a service outright — which is the real unit being split.
Splitting the deployment so teams stop waiting for each other.
Avoid: adopting it for a codebase one team maintains. The coordination cost you are paying to remove does not exist yet, and the distributed debugging cost arrives immediately. A well-factored monolith with clear module boundaries keeps the option open and defers the bill.