Software Engineering ยท Architecture
An architecture where an application is split into small, independently deployable services, each owning a narrow slice of functionality and communicating over a network.
In practice: The real benefit is independent deployability and team autonomy, not the split itself โ microservices that share a database or deploy in lockstep with each other aren't actually microservices.
Debated: Widely over-applied. The operational overhead โ service discovery, distributed tracing, network failures between services, polyglot persistence โ only pays off past a certain team and traffic scale that most organizations never reach.