System Design

Building systems that survive production.

8 articles

  1. 01

    System Design (1): Thinking in Systems — Load, Latency, and the Art of Estimation

    Learn the foundational skills of system design: back-of-envelope estimation, availability math, SLA definitions, and a …

    32 min
  2. 02

    System Design (2): DNS, CDN, and Load Balancing — The First Three Hops

    Every web request begins with DNS resolution, may traverse a CDN edge, and lands on a load balancer before reaching your …

    28 min
  3. 03

    System Design (3): API Design — REST, gRPC, GraphQL, and Choosing Wisely

    A practical comparison of REST, gRPC, and GraphQL — covering protocol design, real-world trade-offs, rate limiting …

    30 min
  4. 04

    System Design (4): Caching — Where to Cache, What to Evict, and When Caching Hurts

    A deep dive into caching strategies across every layer of the stack — from CDN to database buffer pools — covering …

    38 min
  5. 05

    System Design (5): Message Queues and Event-Driven Architecture

    A practical guide to message queues and event-driven systems — covering Kafka and RabbitMQ architectures, delivery …

    34 min
  6. 06

    System Design (6): Microservices vs Monoliths — The Honest Tradeoff

    An honest assessment of monoliths vs microservices — covering the distributed systems tax, service boundary design with …

    30 min
  7. 07

    System Design (7): Data Pipelines — Batch, Stream, and the Lambda Architecture

    A practical guide to data pipeline architectures — covering ETL vs ELT, batch processing with Spark, stream processing …

    30 min
  8. 08

    System Design (8): Case Studies — URL Shortener, Chat System, News Feed

    Three complete system design walkthroughs — a URL shortener, a real-time chat system, and a news feed — each following …

    42 min