System Design & Distributed Systems
System design is the core of staff and principal interviews and the daily work of scaling real systems. This course drills the load-bearing primitives — load balancing, caching, consistent hashing, queues with backpressure, and replication — framed around the explicit trade-offs an interviewer is listening for. Each lesson pairs the decision framing with a runnable JavaScript model of the underlying mechanism.
5 lessons · ~2 hours
1. Scaling Primitives
Load balancing
The balancing algorithm and health checks decide whether added capacity actually absorbs load or just spreads the pain unevenly.
Caching
A cache trades freshness and memory for latency; the eviction policy and the invalidation story are where designs win or lose.
Consistent hashing
Consistent hashing keeps key-to-node mapping stable across cluster changes, remapping only a 1/N slice instead of everything.
Queues & backpressure
A queue decouples producers from consumers and absorbs bursts, but unbounded queues trade away latency and hide overload until it's catastrophic.
Replication & consistency
Replication buys availability and read scale; sync vs async and quorum sizing decide whether a read can see the latest write.