Software Engineering Glossary

Microservices

Also known as: Microservice Architecture Service Oriented Architecture

Microservices is an architecture that splits an application into small, independently deployable services, each owning one business capability and its own data. Services talk over the network through APIs or a message queue, so teams can build, deploy, and scale each one on its own instead of shipping one big monolith.

Key Takeaways

  • Each service is deployed and scaled on its own. A traffic spike in one area does not force you to scale everything.
  • The cost is distributed systems complexity: network calls, partial failures, and data spread across many stores.
  • A transaction across services cannot use one database transaction, so you reach for the saga pattern instead.
  • Most teams should start with a modular monolith and split out services only when the boundaries and the pain are clear.

How It Works

  1. The domain is broken into services along business capabilities, like payments, search, or notifications.
  2. Each service owns its data and exposes an API, often behind a load balancer and gateway.
  3. Services communicate synchronously over HTTP or gRPC, or asynchronously through a message queue.
  4. Cross-service workflows use choreography or orchestration with sagas to keep data eventually consistent.

Where It Is Used

  • Netflix, Amazon, and Uber run thousands of microservices behind API gateways and service meshes.
  • Shopify and others keep a large modular core and peel off services only where it pays off.
  • Kubernetes has become the default platform for deploying and scaling microservices.

Related glossary terms

Advertisement