Microservices
Architecture pattern where an application consists of many small, independently deployed services that communicate via APIs.
Microservices have become the dominant architecture pattern for modern, scalable software systems. Companies like Netflix, Spotify and Amazon have split their monoliths into hundreds of small, independent services. The result: faster releases, better scalability and teams that can work autonomously.
What is Microservices?
Microservices are an architectural approach where an application is developed as a collection of small, independent services. Each service has a clearly defined responsibility (e.g. user management, payment, product catalogue), its own database and is deployed independently. Communication between services uses lightweight protocols such as REST or gRPC and asynchronously via message queues (Kafka, RabbitMQ). Unlike a monolith, where all functionality lives in one codebase, microservices can be developed, tested and scaled independently. Each service can even be written in a different programming language.
How does Microservices work?
Each microservice is developed and operated by a small team (You build it, you run it). An API gateway serves as the central entry point and routes requests to the appropriate services. Service discovery (e.g. Consul, Eureka) helps services find each other. Container orchestration with Kubernetes handles automatic deployment, scaling and self-healing. Centralised logging and tracing (e.g. Jaeger, ELK stack) enable monitoring across all services.
Practical Examples
Netflix: Over 700 microservices process billions of API calls daily. Each service scales independently and fails in isolation.
E-commerce platform: Separate services for product catalogue, cart, payment, shipping and reviews. The cart can be scaled independently of the shipping service.
Fintech app: Dedicated services for account management, transactions, notifications and compliance. Each service has its own database and security policies.
SaaS platform: Tenant management, billing, reporting and user management as separate services. New features are deployed only to the affected service.
Typical Use Cases
Large applications with many teams: Microservices enable parallel development without merge conflicts and mutual blocking
High scaling requirements: Individual services can be scaled horizontally independently
Polyglot technology landscape: Different services can use different technologies
Fast release cycles: Changes to one service can be deployed independently of others
Legacy modernisation: Incremental extraction of functionality from the monolith into services
Advantages and Disadvantages
Advantages
- Independent deployment: Changes to one service do not require redeploying the entire application
- Targeted scaling: Only heavily used services are scaled horizontally
- Technology freedom: Each service can use the best technology for its purpose
- Fault isolation: A failing service does not bring down the whole application
- Team autonomy: Small teams can work independently and quickly
Disadvantages
- High complexity: Distributed systems require expertise in networking, monitoring, service discovery and error handling
- Network overhead: Communication over the network is slower and more error-prone than in-process calls in a monolith
- Data consistency: Distributed transactions across multiple services are difficult (Saga pattern needed)
- Operational effort: Many services mean many deployments, logs and monitoring dashboards
Frequently Asked Questions about Microservices
When should you choose microservices over a monolith?
Do you need Kubernetes for microservices?
How do microservices communicate with each other?
Related Terms
Want to use Microservices in your project?
We are happy to advise you on Microservices and find the optimal solution for your requirements. Benefit from our experience across over 200 projects.