Glossary

Microservices

Microservices is an architecture in which an application is split into small independent services, each owning one capability and its own data, communicating over the network. Each can be deployed, scaled and rewritten separately, and different services can use different technologies.

The benefit is organisational before it is technical: separate teams can ship without coordinating a single release. That is a genuine advantage at a certain size of organisation, and no advantage whatsoever below it.

The costs arrive immediately and in full. A call that was a function invocation becomes a network request that can fail; a transaction that spanned one database now spans several; debugging needs distributed tracing; deployment needs orchestration. Most teams who regret their architecture chose microservices for a system a well-structured monolith would have served better.

← Back to the glossary