Skip to main content
Back to Tags

Microservices

188 items tagged with "microservices"

Filter by type:

Best Practices18

Best Practice

CNCF Cloud-Native Definition & Principles

The CNCF’s formal definition of cloud-native computing and core principles for micro-services, containers, and dynamic orchestration.

Best Practice

Production-Ready Micro-services Checklist

A checklist covering operability, reliability, deployability, and observability of micro-services.

Best Practice

Contract-Driven Development with Pact

Consumer-driven contract testing methodology to ensure micro-service compatibility.

Best Practice

Distributed Tracing Best Practices

Techniques for instrumenting and propagating trace context across services so requests can be followed end-to-end, with sampling and span design that aid debugging.

Best Practice

CQRS (Command Query Responsibility Segregation)

An architecture pattern that separates the model that writes data (commands) from the model that reads it (queries), allowing each side to scale and evolve independently.

Best Practice

Event Sourcing

An architecture pattern that stores every change to application state as an immutable sequence of events, making the event log the source of truth instead of current state.

Best Practice

Saga Pattern

A pattern for managing data consistency across microservices using a sequence of local transactions coordinated by events or a central orchestrator, with compensating actions on failure.

Best Practice

Circuit Breaker Pattern

A resilience pattern that stops calls to a failing dependency once errors cross a threshold, preventing cascading failures and giving the dependency time to recover.

Best Practice

Bulkhead Pattern

A resilience pattern that isolates resources into separate pools so a failure or overload in one part of a system cannot consume the resources others depend on.

Best Practice

Backends for Frontends (BFF)

An architecture pattern that gives each frontend client its own tailored backend service, instead of forcing web, mobile, and other clients to share one general-purpose API.

Best Practice

API Gateway Pattern

An architecture pattern that places a single entry point in front of backend services to handle routing, authentication, rate limiting, and other cross-cutting concerns.

Best Practice

Service Mesh Best Practices

Guidance for using a service mesh to manage service-to-service traffic, security, and observability through sidecar proxies, keeping that logic out of application code.

Best Practice

Sidecar Pattern

A design pattern that deploys a helper component alongside the main application in the same unit, adding capabilities like proxying, logging, or config without changing the app.

Best Practice

Domain-Driven Design (DDD)

A software design approach that models complex business domains in code, using a shared language and bounded contexts to align software structure with the business it serves.

Best Practice

Modular Monolith

An architecture that keeps a single deployable application but enforces strong internal module boundaries, capturing many microservices benefits without distributed-system complexity.

Best Practice

gRPC Best Practices

Guidance for building high-performance gRPC services with Protocol Buffers: service design, streaming, deadlines, error codes, and backward-compatible schema evolution.

Best Practice

AsyncAPI Specification

A standard, machine-readable format for describing event-driven and message-based APIs across protocols like Kafka, MQTT, and AMQP, analogous to OpenAPI for REST.

Best Practice

Micro-Frontends

An architecture that splits a web app into independently developed and deployed frontend pieces owned by separate teams, then composes them into one experience.

Patterns39

Pattern

Database per Service

Each microservice owns and manages its own database, enabling loose coupling and independent deployability

Pattern

Saga Pattern

Manage data consistency across microservices using a sequence of local transactions with compensating actions

Pattern

Sidecar Pattern

Deploy auxiliary components alongside primary services for cross-cutting concerns

Pattern

API Gateway

A single entry point that routes, aggregates, and secures client requests across many backend microservices.

Pattern

Service Registry

A database of available service instances and their network locations, kept current as instances start, stop, and fail.

Pattern

Service Discovery

A mechanism for clients to find the current network location of a service without hard-coding addresses.

Pattern

Ambassador

An out-of-process helper that proxies network calls on behalf of an application, handling connectivity concerns transparently.

Pattern

Adapter Microservice

A microservice that translates between an application and an external system with an incompatible interface or protocol.

Pattern

Service Mesh

A dedicated infrastructure layer that manages service-to-service communication via co-located proxies and a central control plane.

Pattern

API Composition

Implements a query that spans multiple services by invoking each owner service and joining the results in memory.

Pattern

CQRS (Command Query Responsibility Segregation)

Separates the model that writes data (commands) from the model that reads it (queries) so each can be optimized independently.

Pattern

Transactional Outbox

Reliably publishes messages by writing them to an outbox table in the same local transaction as the business data change.

Pattern

Aggregator

A component that invokes multiple services and combines their responses into a single consolidated result for the caller.

Pattern

Gateway Aggregation

Uses a gateway to combine multiple backend requests into one, so clients make a single call instead of many.

Pattern

Gateway Offloading

Moves shared cross-cutting functionality such as TLS, auth, and rate limiting out of services and into a gateway.

Pattern

Gateway Routing

Routes client requests to the correct backend service through a single endpoint using request attributes such as path or host.

Pattern

Choreography

Coordinates a distributed workflow through services reacting to each other's events, with no central controller.

Pattern

Orchestration

Coordinates a distributed workflow through a central orchestrator that explicitly invokes each service in sequence.

Pattern

Externalized Configuration

Stores configuration outside the application artifact so the same build runs unchanged across environments.

Pattern

Compensating Transaction

Undo the completed steps of a multi-step operation when one step fails, restoring consistency without distributed ACID transactions.

Pattern

Deployment Stamps

Deploy multiple independent copies of a full application stack to scale, isolate tenants, and contain failures.

Pattern

Retry

Automatically reattempt a failed operation that is likely transient, using backoff and limits to recover without user impact.

Pattern

Message Router

Consumes a message and redirects it to a different channel based on conditions, decoupling producers from the decision of where messages should go.

Pattern

Content-Based Router

Routes each message to a destination channel chosen by inspecting the message's content, so the payload itself determines where it is delivered.

Pattern

Routing Slip

Attaches a sequence of processing steps to a message so it routes itself through a series of components determined per message at runtime.

Pattern

Process Manager

A central component that maintains the state of a multi-step message flow and decides the next step, coordinating complex or branching workflows.

Pattern

Polyglot Persistence

An architecture that uses multiple, purpose-fit data stores within one system, matching each store's strengths to each data access pattern.

Pattern

Two-Phase Commit (2PC)

A distributed-transaction protocol that coordinates multiple participants to commit or abort atomically through a prepare phase and a commit phase.

Pattern

Retry with Backoff

Automatically re-attempts a failed operation after progressively longer waits, smoothing over transient faults without overwhelming a struggling dependency.

Pattern

Exponential Backoff with Jitter

Adds randomness to exponentially growing retry delays so that many clients do not retry in lockstep and overwhelm a recovering service.

Pattern

Timeout

Bounds how long a caller waits for an operation, freeing resources and surfacing failures fast instead of blocking indefinitely on a slow or hung dependency.

Pattern

Bulkhead

Isolates resources into independent pools so a failure or overload in one part of a system cannot consume capacity needed by the rest.

Pattern

Fallback

Provides an alternative response or behavior when a primary operation fails, keeping the system useful instead of returning an error to the user.

Pattern

Fail Fast

Detects invalid state or unavailable dependencies as early as possible and reports the error immediately, rather than continuing into deeper, costlier failure.

Pattern

Backpressure

Lets a slow consumer signal upstream producers to slow down, preventing unbounded queues and memory exhaustion when demand exceeds processing capacity.

Pattern

Distributed Tracing

Tracks a single request as it flows across many services by propagating context, producing an end-to-end timeline that reveals latency and failure sources.

Pattern

Correlation ID

Assigns a unique identifier to a request and propagates it through every service and log, so related events across a distributed system can be tied together.

Pattern

Micro Frontend

Decomposes a web frontend into independently developed and deployed pieces owned by separate teams, then composes them into one application at runtime or build time.

Pattern

Zero Trust Segmentation

Eliminates implicit network trust by authenticating and authorizing every request and dividing the network into fine-grained, individually protected segments.

Anti-Patterns12

Anti-Pattern

Distributed Monolith

Splitting a monolith into microservices that are still tightly coupled and must be deployed together

Anti-Pattern

Shared Database Integration

Multiple services directly sharing the same database tables

Anti-Pattern

Stovepipe System

Independently built, siloed systems that duplicate capabilities and cannot interoperate because each was designed in isolation without shared standards.

Anti-Pattern

Nanoservices

Splitting a system into services so small that coordination, network, and operational overhead vastly exceed the value of each tiny service.

Anti-Pattern

Entity Service

Designing microservices around data entities rather than business capabilities, forcing every workflow to orchestrate chatty calls across CRUD-only services.

Anti-Pattern

N+1 Network Calls

Fetching a list, then making one additional remote call per item to enrich it, so a single logical operation fans out into N+1 dependency calls.

Anti-Pattern

Premature Scaling

Building for massive scale before there is load to justify it, paying the cost and complexity of distributed systems to solve problems the product does not yet have.

Anti-Pattern

Chatty API

An API design that forces clients to make many small round trips to complete one task, harming latency, scalability, and battery life.

Anti-Pattern

Nanoservices (Overly Fine-Grained Services)

Splitting a system into so many trivially small services that coordination, network, and operational overhead dwarf any benefit of separation.

Anti-Pattern

Synchronous Call Chains

Deep chains of blocking request-response calls between services, so latency compounds and one slow or failed service cascades into widespread failure.

Anti-Pattern

Entity Services

Decomposing microservices around data entities (CRUD wrappers per table) rather than business capabilities, creating chatty, anemic, tightly coupled services.

Anti-Pattern

Death Star (Distributed Big Ball of Mud)

A microservice estate where every service calls nearly every other with no clear boundaries, producing a tangled mesh impossible to change or reason about.

Blueprints12

Blueprint

Monolith to Microservices Blueprint

Complete migration blueprint for decomposing a monolithic application into microservices architecture

Blueprint

Modular Monolith to Microservices Blueprint

Decompose a modular monolith into independently deployable microservices using the strangler fig pattern and database-per-service.

Blueprint

Django Monolith to Services Blueprint

Extract bounded capabilities from a large Django monolith into separate services with their own datastores and async messaging.

Blueprint

Monolith to Go Service Extraction Blueprint

Extract performance-critical capabilities from a monolith into standalone Go services with gRPC contracts and container-native deployment.

Blueprint

Stateful Monolith to Stateless Services Blueprint

Re-architect a session-bound stateful backend into horizontally scalable stateless services with externalized session and cache state.

Blueprint

Single Database to Database-per-Service Blueprint

Decompose a shared monolithic database into per-service data stores to enable independent microservice deployment.

Blueprint

REST to gRPC for Internal Services Blueprint

Replace JSON-over-HTTP calls between internal microservices with gRPC and Protocol Buffers for lower latency and strongly typed contracts.

Blueprint

Monolithic API to API Gateway Blueprint

Front a monolithic API with an API gateway to centralize auth, rate limiting, routing, and observability before decomposing services.

Blueprint

Synchronous Calls to Event-Driven (Kafka) Blueprint

Replace brittle synchronous service-to-service calls with asynchronous events on Apache Kafka to decouple services and improve resilience.

Blueprint

Enterprise Service Bus to Modern Integration Blueprint

Replace a heavyweight enterprise service bus with lightweight integration: API gateway, event streaming, and decentralized integration services.

Blueprint

Central Orchestration to Choreography (Saga) Blueprint

Replace a central orchestrator coordinating distributed transactions with event-driven choreography using the saga pattern and compensations.

Blueprint

COBOL Mainframe to Java on Cloud Blueprint

Modernize COBOL/CICS mainframe applications to Java microservices on the cloud using domain decomposition and the strangler-fig pattern.

Reference Architectures19

Reference Architecture

Serverless Web Application

Reference architecture for building serverless web applications with API Gateway, Lambda, and DynamoDB

Reference Architecture

Event-Driven Microservices

Architecture pattern for building loosely-coupled microservices using event sourcing and CQRS

Reference Architecture

Monolith to Microservices Migration

Step-by-step architecture for decomposing monolithic applications into microservices

Reference Architecture

Event-Driven Microservices on Kubernetes

A Kubernetes-native reference design for loosely coupled microservices that communicate through Kafka events with service-level autoscaling.

Reference Architecture

Container Platform with Service Mesh

A Kubernetes container platform with an Istio service mesh providing mTLS, traffic management, and uniform observability across services.

Reference Architecture

ECS Fargate Microservices Platform

A serverless container microservices platform on AWS ECS Fargate with service discovery, autoscaling, and no servers to manage.

Reference Architecture

CQRS and Event Sourcing on Cloud

A cloud microservices design separating write and read models with event sourcing for full auditability and independent scaling.

Reference Architecture

Service Mesh with mTLS on Kubernetes

Istio-based service mesh providing mutual TLS, traffic management, and observability for microservices.

Reference Architecture

API Gateway with Backends-for-Frontends

An edge API gateway fronting channel-specific BFF services that aggregate microservices for web, mobile, and partner clients.

Reference Architecture

Federated GraphQL Supergraph

A federated GraphQL architecture where independently owned subgraphs compose into one supergraph behind a managed gateway.

Reference Architecture

gRPC Service Mesh for Internal APIs

A high-performance internal API platform using gRPC over a service mesh for typed, low-latency service-to-service calls.

Reference Architecture

CQRS with Event Sourcing

A command-query separated system where state is derived from an append-only event log and read models are projected for queries.

Reference Architecture

Saga Orchestration for Distributed Transactions

An orchestrated saga design that coordinates multi-service business transactions with compensating actions instead of two-phase commit.

Reference Architecture

Event Choreography for Microservices

A choreographed event-driven design where services react to each other's domain events without a central orchestrator.

Reference Architecture

Transactional Outbox for Reliable Events

A transactional outbox design that guarantees events are published exactly when their database changes commit, avoiding dual-write loss.

Reference Architecture

Micro-Frontends Platform

Independently built and deployed front-end modules composed at runtime into a single web app, each owned by a separate team.

Reference Architecture

Multi-Tenant SaaS Platform

A single application instance serving many customer tenants with isolated data, per-tenant configuration, and usage-based billing.

Reference Architecture

E-Commerce Platform on Microservices

A modular online store splitting catalog, cart, checkout, payments, and orders into independent services with event-driven coordination.

Reference Architecture

Backend-for-Frontend API Aggregation Platform

Per-client backend-for-frontend services and a GraphQL gateway that aggregate microservices into tailored, efficient API responses.

Playbooks14

Playbook

Microservices Migration Playbook

Complete operational guide for decomposing a monolith into microservices

Playbook

Service Mesh Adoption Program Playbook

A phased program to roll out a service mesh for mTLS, traffic management, and observability across a Kubernetes microservices estate.

Playbook

Monolith Decomposition Program Playbook

A phased program for breaking a large backend monolith into independently deployable services using the strangler-fig approach.

Playbook

Strangler-Fig Modernization Program Playbook

A program for incrementally replacing a legacy system by routing functionality to new services until the legacy is fully strangled.

Playbook

Domain-Driven Decomposition Program Playbook

A program that uses domain-driven design and event storming to decompose a system into bounded-context services aligned to teams.

Playbook

Event-Driven Architecture Adoption Program Playbook

A program to introduce event-driven communication, a schema registry, and async workflows into a synchronous backend estate.

Playbook

Go Microservices Platform Program Playbook

A program to standardize backend services on Go with shared platform libraries, gRPC contracts, and golden-path tooling.

Playbook

Data Mesh Rollout Program Playbook

Roll out a data mesh operating model with domain-owned data products, a self-serve platform, and federated computational governance.

Playbook

Service Mesh Adoption Playbook

A program to introduce a service mesh for secure service-to-service communication, traffic control, and observability across microservices.

Playbook

GraphQL Adoption Program Playbook

A program to adopt GraphQL alongside existing REST APIs, covering schema design, a federated gateway, performance, and governance.

Playbook

gRPC Migration Program Playbook

A program to migrate internal service-to-service communication from REST/JSON to gRPC for lower latency and strong contracts.

Playbook

API Gateway Rollout Playbook

A program to roll out a centralized API gateway for authentication, rate limiting, routing, and observability across services.

Playbook

Event-Driven Architecture Adoption Playbook

A program to adopt event-driven architecture with a streaming backbone, schema governance, and resilient async patterns.

Playbook

ESB to Modern Integration Playbook

A program to migrate from a centralized enterprise service bus to decentralized, event-driven and API-led integration.

Checklists9

Checklist

Monolith Decomposition Readiness Checklist

Verify a monolithic application is understood, instrumented, and bounded well enough to begin safe decomposition into services.

Checklist

Microservice Production-Readiness Checklist

Confirm a new or extracted microservice meets operational, security, and resilience bars before it serves production traffic.

Checklist

Service Extraction Cutover Checklist

Cutover checks for routing live traffic from a monolith to a newly extracted service without downtime or data loss.

Checklist

Backward-Compatibility Review Checklist

Review a change to a service, API, or schema to confirm existing consumers and data continue to work without breaking.

Checklist

Event-Driven Architecture Readiness Checklist

Confirm readiness to adopt event-driven communication between services, covering schemas, delivery semantics, and observability.

Checklist

REST to gRPC Migration Checklist

Plan a migration of internal service communication from REST to gRPC, covering contracts, compatibility, and rollout.

Checklist

Database-Per-Service Decoupling Checklist

Separate a shared database into per-service ownership so microservices can deploy and scale independently without hidden coupling.

Checklist

gRPC Rollout Checklist

Pre-flight items for rolling out gRPC services across a system, covering contracts, compatibility, security, and observability.

Checklist

Microservices API Contract Testing Checklist

Verification items for establishing consumer-driven contract testing across microservices to prevent integration breakage.

Stacks17

Stack

Cloud Native Stack

Kubernetes, Helm, Istio, Prometheus - CNCF ecosystem

Stack

Go Microservices Stack

Go, gRPC, Kubernetes, PostgreSQL - High-performance services

Stack

Spring Cloud Stack

Spring Boot, Spring Cloud, Kubernetes - Enterprise Java

Stack

Go + gRPC Stack

Compiled Go backend stack using gRPC and Protocol Buffers with PostgreSQL for fast, strongly-typed inter-service communication.

Stack

Go + Gin + Postgres Stack

Lightweight Go REST backend using the Gin web framework with PostgreSQL and Redis for fast, simple, high-throughput HTTP APIs.

Stack

Micronaut JVM Microservices Stack

JVM microservices stack using Micronaut with ahead-of-time compilation and PostgreSQL for low-memory, fast-starting services and serverless functions.

Stack

Kubernetes + Istio Service Mesh Stack

Cloud-native platform stack pairing Kubernetes orchestration with the Istio service mesh for traffic management, security, and observability.

Stack

Event-Driven Microservices Stack

Asynchronous microservices architecture using Kafka as an event backbone with independently deployable services for loose coupling and scalability.

Stack

gRPC Service Mesh Stack

Microservices stack combining gRPC inter-service communication with a service mesh on Kubernetes for typed, observable, secure service-to-service traffic.

Stack

Dapr Distributed Application Stack

Polyglot microservices stack using Dapr building blocks for service invocation, state, pub/sub, and bindings, abstracted from underlying infrastructure.

Stack

OpenTelemetry + Tempo + Grafana Tracing Stack

Vendor-neutral distributed tracing: OpenTelemetry instruments and collects traces, Tempo stores them cheaply in object storage, and Grafana visualizes them.

Stack

Jaeger Distributed Tracing Stack

CNCF distributed tracing stack: OpenTelemetry instrumentation feeds Jaeger, which stores spans in Elasticsearch or Cassandra and visualizes request flows.

Stack

Vert.x Reactive Stack

A polyglot, event-driven toolkit on the JVM built around a non-blocking event loop and the reactor pattern for high-concurrency, low-latency services.

Stack

Spring WebFlux Reactive

Spring's reactive, non-blocking web stack built on Project Reactor and Netty, for high-concurrency services that need backpressure and efficient resource use.

Stack

Ktor + Exposed

A lightweight, coroutine-based Kotlin web framework paired with the Exposed SQL library, for idiomatic, asynchronous Kotlin backends and APIs.

Stack

Axum + SQLx (Rust)

A modern async Rust backend built on the Tokio runtime with the Tower middleware ecosystem and compile-time-checked SQL via SQLx.

Stack

Jaeger + OpenTelemetry + Prometheus

An open-source observability stack combining OpenTelemetry instrumentation, Jaeger distributed tracing, and Prometheus metrics, visualized in Grafana.

FAQs9

FAQ

What is a service mesh?

A service mesh is an infrastructure layer that manages communication between microservices, handling traffic routing, load balancing, retries, encrypt...

FAQ

When should I use Kubernetes?

Kubernetes makes sense when you run many containerized services that need automated scaling, self-healing, rolling updates, and consistent deployment ...

FAQ

What is a sidecar container?

A sidecar is a secondary container that runs alongside the main application container in the same pod to extend or support it without changing the app...

FAQ

What does cloud native mean?

Cloud native describes an approach to building and running applications that fully exploits the elasticity, automation, and managed services of the cl...

FAQ

What is gRPC and when should I use it?

gRPC is a high-performance remote procedure call framework that uses Protocol Buffers for compact binary serialization and HTTP/2 for transport, inclu...

FAQ

What is an API gateway?

An API gateway is a server that sits in front of one or more backend services and acts as a single entry point for clients. It handles cross-cutting c...

FAQ

What is a microservice?

A microservice is a small, independently deployable service that owns a single business capability and communicates with other services over the netwo...

FAQ

Monolith vs microservices: which should I choose?

A monolith packages all functionality into a single deployable unit, which keeps development, testing, and deployment simple and is usually the right ...

FAQ

What is event-driven architecture?

Event-driven architecture is a style where components communicate by producing and reacting to events—records that something happened—rather than call...

Glossaries14

Glossary

Microservices

An architectural style structuring an application as a collection of loosely coupled, independently deployable services

Glossary

API Gateway

A server that acts as a single entry point for API calls, handling routing, composition, and cross-cutting concerns

Glossary

Service Mesh

A dedicated infrastructure layer for handling service-to-service communication in microservices

Glossary

Polyglot Persistence

Using different data storage technologies for different data storage needs within an application

Glossary

Bounded Context

A central pattern in Domain-Driven Design that defines clear boundaries within which a model is defined

Glossary

Cloud-Native

An approach to building and running applications that fully exploits the advantages of the cloud computing delivery model

Glossary

Service (Kubernetes)

A Kubernetes Service is an abstraction that exposes a logical set of pods as a single stable network endpoint, providing service discovery and load balancing across them.

Glossary

gRPC

gRPC is a high-performance remote procedure call framework that uses HTTP/2 for transport and Protocol Buffers for compact, strongly typed message serialization.

Glossary

Observability

The degree to which the internal state of a system can be understood from the external data it produces, typically its metrics, logs, and traces.

Glossary

Distributed Tracing

A technique that follows a single request as it propagates across multiple services, recording timing and context at each step to reveal the end-to-end path.

Glossary

Span

The basic unit of work in distributed tracing, representing a single named, timed operation with a start, an end, and contextual attributes.

Glossary

Monolith

A monolith is an application built and deployed as a single, unified unit, where all functionality runs in one process or codebase rather than being split into independent services.

Glossary

Modular Monolith

A modular monolith is a single deployable application whose internal code is organized into well-isolated modules with explicit boundaries, combining a monolith's simple operations with microservice-style separation of concerns.

Glossary

Domain-Driven Design

Domain-driven design (DDD) is a software design approach that models software closely on the business domain, using a shared language between developers and domain experts and organizing the system around bounded contexts.