Microservices is an architectural style in which a system is built as a set of small, independently deployable services, each owning one business capability and its own data. Services talk to each other over the network — synchronous HTTP or gRPC, or asynchronous messages on a broker — and are built, released and scaled on separate schedules. The defining property is not size. It is independence: if two services must always be released together, they are one service wearing two names.
The architecture buys organisational scaling before it buys technical scaling. A team that owns a service can change, test and ship it without joining a release train with six other teams, and a hot code path can be scaled without scaling everything around it. Domain-driven design supplies the vocabulary for drawing those lines — bounded contexts, aggregates, a ubiquitous language per context — and it is the boundaries, not the container count, that decide whether the result stays maintainable. Decomposition by business capability survives reorganisation; decomposition by technical layer does not.
The cost is paid in operations. Every in-process call that becomes a network call acquires latency, partial failure, timeouts and a retry policy. Every shared table that becomes two databases acquires eventual consistency and a saga in place of a transaction. Microservices therefore arrive with a mandatory platform bill: service discovery, an API gateway, distributed tracing, centralised logging, per-service CI/CD, contract tests and a deployment substrate. Teams that skip that bill end up with a distributed monolith — the coupling of the old system plus the failure modes of the new one.
Why this skill matters now
Most organisations are not choosing between a greenfield monolith and greenfield microservices. They are living with a decomposition that already happened, often for organisational reasons, and now have to make it operable. That is where the hiring demand sits: engineers who can reason about service boundaries, failure propagation and data ownership, not engineers who can scaffold another Spring Boot service.
The industry has also stopped treating microservices as a default. Well-run teams now argue explicitly about where the boundary belongs, and several high-profile rewrites have gone back to fewer, larger services because the coordination overhead exceeded the benefit. Knowing when not to split is now as marketable as knowing how to.
Meanwhile the supporting stack has consolidated. Kubernetes, OpenTelemetry, gRPC, Kafka and service meshes are the assumed substrate, so a microservices skill set is really a distributed-systems skill set expressed through those tools — which is why the same knowledge shows up in platform engineering, SRE and backend architecture roles alike.