Skip to content

Microservices Design Patterns — From Zero to Hero

A standalone, beginner→advanced course on the microservices pattern language. When microservices help (and when they hurt), how to decompose a system, keep data consistent across services, communicate reliably, and run them in production — each pattern presented as Context → Problem → Solution with an architecture diagram and an example.

Intro & Principles

Monolith vs microservices, the benefits and drawbacks, when to use them, and the pattern language. Start →

Decomposition

Decompose by business capability and by subdomain (DDD), self-contained service, service per team. Split →

Data Management

Database per Service, Saga, API Composition, CQRS, Event Sourcing. Manage data →

Transactional Messaging

The dual-write problem — Transactional Outbox, log tailing, polling publisher, idempotent consumer. Publish reliably →

Communication

RPI (REST/gRPC), messaging, API Gateway, Backends for Frontends, service discovery. Connect →

Reliability

Circuit Breaker, retry + timeout, bulkhead, rate limiting — surviving partial failure. Harden →

Observability

Health Check API, log aggregation, distributed tracing, metrics, audit logging. Observe →

Deployment & Cross-cutting

Service per Container, serverless, service mesh, microservice chassis, externalized config. Ship it →

Context → Problem → Solution

Every pattern is presented the same way — the situation, the forces it must resolve, the solution, and the benefits and drawbacks it brings.

Diagrams that explain

Architecture, sequence, and state diagrams as theme-aware Mermaid — sagas, the circuit-breaker states, service mesh, trace propagation.

Examples in four languages

Logic patterns (Saga, Circuit Breaker, Idempotent Consumer) come with TypeScript, Python, Go, and Rust in synced tabs; infra patterns show real config.

Bilingual + read mode

English and ไทย, quizzes with saved progress, and a distraction-free read mode.