Skip to main content
Architecture

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

1

Netflix: Over 700 microservices process billions of API calls daily. Each service scales independently and fails in isolation.

2

E-commerce platform: Separate services for product catalogue, cart, payment, shipping and reviews. The cart can be scaled independently of the shipping service.

3

Fintech app: Dedicated services for account management, transactions, notifications and compliance. Each service has its own database and security policies.

4

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?

Microservices pay off when teams are large enough (more than 8–10 developers), scaling requirements are high, or different parts of the application have different release cycles. For startups and small teams, a monolith is often the better choice due to lower overhead.

Do you need Kubernetes for microservices?

Not strictly, but Kubernetes makes managing many services much easier. Alternatives are Docker Compose for small setups, AWS ECS or serverless platforms like AWS Lambda. From about 10–15 services, an orchestration solution like Kubernetes is strongly recommended.

How do microservices communicate with each other?

There is synchronous communication (REST, gRPC) for immediate responses and asynchronous communication (message queues like Kafka or RabbitMQ) for decoupled processing. Best practice is a mix: synchronous for real-time queries and asynchronous for events and background processing.

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.

Next Step

Questions about the topic? We're happy to help.

Our experts are available for in-depth conversations – no strings attached.

30 min strategy call – 100% free & non-binding

What are Microservices? Architecture, Benefits & Practice