Skip to content

Microservices & Distributed Systems

Patterns, protocols, and practices for building resilient distributed systems — from API gateways to event-driven architecture.

Courses

Intermediate~4.5 hours

Master how microservices talk to each other — synchronous REST and gRPC, async messaging, event-driven patterns, resilience, and distributed consistency.

Intermediate~5 hours

Learn how to design scalable, reliable, and maintainable systems — from single servers to distributed architectures used by millions of users.

Articles

An order database's primary data center suffers a catastrophic, unrecoverable event — not a transient node failure, an actual disaster. Two …

A product-page personalization API needs to answer in under 100ms for a good user experience. A shopper in Sydney hits it, and the request h…

A multi-tenant analytics platform partitions incoming events by tenant_id, hashed onto 16 shards — a design that looked perfectly balanced i…

A URL shortener's redirect endpoint, GET /r/{code}, looks purely read-heavy — billions of redirects against a handful of short codes created…

A URL shortener turns https://example.com/a/very/long/path?campaign=autumn into something like sho.rt/6ZY3LCH, and sends anyone who opens th…

An order service runs in two regions, us-east and eu-west. In one design, both regions serve live customer traffic right now, splitting the …

A permission check in front of a wire-transfer approval endpoint times out. What should happen next? One engineer's instinct says "don't blo…

A payment service keeps processing requests with zero dropped transactions while one of its three nodes crashes mid-request — that's fault t…

A product page shows the item, its price, and an "add to cart" button — the core path — plus a "customers also viewed" recommendation strip …

A checkout API runs three replicas across two availability zones behind a load balancer — on paper, no single point of failure. Then one AZ …

An order-ingestion API writes to an in-memory queue, a worker pool drains it, and a payment provider on the other end gets slow. The queue k…

A shopping cart write to cart-77 needs to land on enough replicas that a later read is guaranteed to see it — but "enough" is a number you c…

A 4-node session cache scales to 5 nodes to handle more traffic. With hash(key) % N, that single node addition changes almost every key's ta…

A user changes their display name, refreshes the page a second later from a phone on a different network, and sees the old name. Nothing cra…

A checkout API can wait until every step finishes, or accept an order and complete work later. The first path gives the caller an immediate …

A shopping cart must remember items, so the product cannot be literally stateless. The useful design question is where that state lives. Kee…

Docker and Kubernetes are not competitors on the same layer, and treating them as an either/or is the mistake that leads teams to run a clus…

A trip booking needs a flight, a hotel room, and a card charge to either all succeed or all unwind — but each lives in a different service w…

A signup service inserts a new User row, then calls the broker to publish UserRegistered so the welcome-email and loyalty services can react…

A customer clicks Pay. Your server charges the card, and then the connection drops before the response reaches the browser. The client canno…

Want a guided sequence? Follow a learning path that includes this topic.

View Learning Paths