Microservices
Microservices is an architectural style in which a single application is built as a collection of small, independently deployable services, each owning a focused business capability and communicating over the network.
How it works
Each microservice owns its data, exposes an API (typically REST, gRPC, or async events), and runs as its own deployable unit. The platform around them provides service discovery, request routing, observability, and standardized authentication.
Communication patterns split into synchronous (request-response over HTTP or gRPC) and asynchronous (events on a message bus like Kafka).
Microservices vs Monolith
- Monolith. Single deployable, shared codebase and database. Simpler operations, simpler debugging, but releases couple all teams.
- Modular Monolith. Single deployable with strict internal module boundaries. Most of the structural benefits with monolith operations.
- Microservices. Many deployables, distributed data. Independent release cadence at the cost of distributed-system complexity and operational overhead.
Origin
The term was popularized in 2014 by James Lewis and Martin Fowler in their article Microservices, drawing on patterns already in production at Netflix, Amazon, and earlier SOA practitioners.
Kubernetes, Distributed Systems, API Gateway, Service Mesh, Event-Driven Architecture, Monolith, Observability.
Why "Monolith" Became a Bad Word