NEW
Also known as: Microservices Architecture, Service
A small, independently deployable service that implements a specific business capability and communicates via well-defined APIs.
DESCRIPTION
Microservices decompose applications into autonomous services communicating over lightweight protocols. Each service encapsulates a bounded context, enabling independent deployment and scaling. Teams can adopt polyglot technologies and evolve services without a central monolith. Observability, API governance, and DevOps practices are critical for reliability. Trade-offs include distributed complexity, data consistency challenges, and operational overhead. Patterns like service mesh, circuit breakers, and event-driven architectures mitigate such concerns.
ALTERNATIVE DEFINITIONS
Martin Fowler
The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms.
Emphasizes small, independent services communicating via lightweight mechanisms.
AWS
Microservices are an architectural and organizational approach to software development where software is composed of small independent services that communicate over well-defined APIs.
Highlights both architectural and organizational aspects and API-centric communication.
Microsoft Learn
A microservices architecture is a collection of small, autonomous services that communicate over well-defined APIs.
Stresses autonomy and API communication in Azure architecture guidance.
Wikipedia
Microservices are a software development technique—a variant of the service-oriented architecture structural style—that arranges an application as a collection of loosely coupled services.
Positions microservices as a variant of SOA with loose coupling.
RELATED TERMS
Service-Oriented Architecture API Gateway Service Mesh Event-Driven Architecture Domain-Driven Design Kubernetes REST Twelve-Factor App Containers CI-CD Service Discovery Observability
COMPETING TERMS
Monolithic Architecture
KNOWLEDGE AREAS
Software Engineering Cloud Infrastructure Platform & Tooling Data Architecture
TARGET AUDIENCE
Software Developer DevOps Engineer Cloud Architect Enterprise Architect Chief Technology Officer Software Architect Solution Architect
EXTERNAL SOURCES
- Wikipedia - Microservices
- Microsoft - Azure architecture guidance for microservices
- AWS - AWS overview and patterns for microservices
- Google Cloud - Google Cloud microservices reference architecture
- Istio - Service mesh for microservices communication
TOP QUESTIONS
Why choose a Microservice architecture over a monolith?
Microservices enable independent deployments, team autonomy, and technology choice. They scale components individually and reduce blast radius. However, they add operational complexity and require strong DevOps practices.
Category: Opinion
What is a common mistake when adopting Microservices?
Splitting too early without clear domain boundaries leads to chatty services and distributed complexity. Start with a well-factored modular monolith and evolve when bottlenecks appear.
Category: Mistakes
How do Microservices communicate safely?
Use well-defined APIs with idempotent operations, circuit breakers, retries, and timeouts. Prefer asynchronous messaging to reduce coupling and improve resilience.
Category: Requirements
How is data managed in Microservices?
Each service owns its data to preserve autonomy. Use event-driven patterns and sagas for cross-service consistency rather than shared databases.
Category: Management
What is currently a hot topic around Microservices?
Service meshes for zero-trust networking and observability, and platform engineering that streamlines microservice delivery, are top trends.
Category: Topic
When should you avoid Microservices?
For small teams and simple domains, a well-structured monolith is faster and cheaper. The distributed overhead may outweigh benefits.
Category: Risks
How do you split a system into Microservices?
Apply domain-driven design to identify bounded contexts. Split around business capabilities and use clear API contracts to minimize cross-service dependencies.
Category: Requirements
How are Microservices observed in production?
Use telemetry with distributed tracing, structured logs, and metrics. Implement correlation IDs and SLOs to detect issues and enforce reliability.
Category: Observability
What is the role of a service mesh in Microservices?
A service mesh provides traffic management, mTLS, retries, and observability without changing application code. It standardizes cross-cutting concerns.
Category: Overview