MicroservicePatterns.com
Pattern catalog

Patterns by the problem they solve

Patterns rarely work alone. A Saga needs reliable messaging, and a Circuit Breaker works best with timeouts and retries that are tuned to match. Start with the map, then open any pattern.

How the patterns connect

Decompose by SubdomainStrangler FigBusiness CapabilitySelf-Contained ServiceDatabase per ServiceShared DatabaseSagaTransactional OutboxAPI CompositionCQRSEvent SourcingChange Data CaptureAPI GatewayAsynchronous MessagingBackend for FrontendIdempotent ConsumerDead Letter QueueAsync Request-ReplyAccess Token RelayRetry with Backoff and JitterTimeoutCircuit BreakerBulkheadRate LimitingLog AggregationApplication MetricsDistributed TracingHealth Check APIExternalized ConfigSidecar
Hover or focus a pattern to see how it connects. Select it to open its page.
Decomposition

Where do the boundaries go?

How to split a system into services and migrate toward them without a big-bang rewrite.

Data management

Who owns the data, and how does it stay consistent?

How services own their data and still deliver business outcomes that span several of them.

Communication

How do clients and services talk?

How requests and messages move between clients, gateways and services.

Resilience

What happens when a dependency fails or slows down?

How to keep serving users when parts of the system are broken, slow or overloaded.

Observability

How do we see what the system is doing?

How to understand behaviour that is spread across many processes and machines.

Deployment

How do we ship and run it?

How cross-cutting runtime concerns are packaged and operated across many services.