topic / system-design
System Design
Turn product requirements into a system with explicit trade-offs.
Design services by reasoning about workload, latency, availability, storage, caches, queues, load balancing, replication, consistency, and failure recovery.
9 articles · 4 videos · 6 traces · 4 request flows · 4 interviews · 27 total
Articles
Circuit Breakers and Bulkhead Isolation
How to prevent a slow or failing dependency from taking down your entire system by isolating failures and failing fast.
Consensus: How Nodes Agree Despite Failures
Why distributed systems need consensus, how Raft uses terms and quorums to elect a leader, and when the cost is worth paying.
Databases: Storage, Indexing, and Replication
From write-ahead logs to B-trees, from leader-follower to read replicas — how databases persist, index, and copy your data.
Distributed Queues and Reliable Delivery
At-most-once, at-least-once, and exactly-once delivery semantics, dead-letter queues, and the cost of ordering in a queue.
How a Load Balancer Distributes Requests
Round-robin, least connections, IP hash, consistent hashing, and health checks — the mechanics behind every routing decision.
Latency, Throughput, and the Cost of Coordination
Every system design trade-off is ultimately a balance between doing work fast, doing work often, and paying the cost of making multiple components agree.
Shard Distribution with Consistent Hashing
How to split a keyspace across many machines so that adding or removing one server moves the minimum amount of data.
What Is a Software System?
A system is not a single program — it is components with boundaries, responsibilities, and failure modes. Learn how to see the box before you design inside it.
Design a System From Its Workload and Failure Modes
Turn user requirements into a data flow, capacity model, and failure-aware architecture before drawing infrastructure boxes.
Request Flows
Videos
System Design Advanced: Consensus, Sharding, and Failover
How Raft elects leaders under failure, how consistent hashing distributes shards, and how circuit breakers and multi-region failover keep systems alive.
DetailsSystem Design Foundations: From Idea to Execution Trace
A beginner-friendly walkthrough of what a software system is, why latency and throughput matter, and how a request actually travels from browser to server.
DetailsSystem Design Intermediate: Load, Databases, and Queues
How requests are distributed across instances, how databases persist and replicate writes, and how queues decouple components in production.
DetailsDesigning a Cache-Backed Read Path
A planned system-design walkthrough traces a product read through routing, a cache, a database, and freshness decisions.
DetailsTraces
Interviews
Explore adjacent
New lessons by email
Get new explanations about system design and related systems in your inbox.
One technical dispatch per week. No noise.