All terms

Glossary

Microservices

An application is split into several independently deployable services, each with its own storage and lifecycle.

The gain is independence: teams deploy separately, scale separately and choose their own stack. The price is a distributed system with everything that entails.

That includes network failure as the normal case, tracing across service boundaries, data consistency without a shared transaction, and operational effort growing with the number of services.

How you notice it

  • Several teams need to release independently.
  • Parts of the system have very different load profiles.
  • Domain boundaries are clear and stable.

Frequently asked

How many services should we start with?

As few as possible, and only where a boundary is obvious. Every service adds network, deployment, monitoring and failure modes. Two services that earn their keep beat twelve that were drawn on a whiteboard.

Read moreWhy full rewrites fail