I built this series as a system design reference - the vocabulary organised around explicit trade-offs rather than canonical answers:
- scalability
- consistency models
- sharding
- caching
Chapter 1 covers the concepts and vocabulary everything else in the series links back to. Each subsequent chapter is a worked design problem:
- stated requirements
- explicit trade-offs
- a final design
The fundamentals chapter makes the reasoning in each one clearer.
Every design choice exchanges one property for another:
- strong consistency costs latency
- horizontal scaling costs coordination
- microservices cost operational overhead
The series
Chapter 1 - Fundamentals (coming soon)
Core concepts (scalability, CAP theorem, consistency models, fault tolerance), building blocks (load balancers, caches, databases, message queues), architecture patterns, and a 6-step framework for working through design problems.
Chapter 2 - URL Shortener (coming soon)
Base62 ID generation, the 301 vs 302 redirect trade-off, NoSQL storage, and Redis caching for a write-once system reading at 100K+ req/s.
Chapter 3 - Rate Limiter (coming soon)
Token bucket vs sliding window vs fixed window algorithms; where it sits in the request path; distributed rate limiting across multiple nodes.
Chapter 4 - Distributed Cache (coming soon)
Cache invalidation strategies, eviction policies, thundering herd, and cache-aside vs write-through vs write-behind patterns.
Chapter 5 - Notification System (coming soon)
Fan-out, multi-channel delivery (push, email, SMS), retry and deduplication, and the trade-off between fan-out-on-write and fan-out-on-read.
Chapter 6 - News Feed (coming soon)
Fan-out-on-write vs fan-out-on-read; the consistency vs latency trade-off that defines most feed systems; ranking and relevance at scale.
Chapter 7 - Distributed Job Scheduler (coming soon)
Idempotency, exactly-once vs at-least-once delivery, leader election, and fault tolerance for scheduled and recurring jobs.
Notes
- Each chapter links back to Chapter 1 for any concept it uses rather than re-explaining it - read Chapter 1 first if a concept in a design chapter is unclear.
- Next: Chapter 1 - Fundamentals (coming soon)