System Design Foundations
The building blocks of scalable systems — load balancing, caching, queues, partitioning, and the reliability work around them.
- Intermediate
- 1h 37m
- 4 modules
- 12 lessons
- 14.8k students
Taught by Tomas Berg · Python, pandas, System design, Distributed systems

What you’ll learn
Assemble the building blocks
Know what load balancers, caches, and queues each solve, and what they cost you.
Scale the data layer
Partition and replicate data, and reason clearly about the consistency you gave up.
Design resilient APIs
Handle retries, idempotency, and rate limiting so failures do not compound.
Estimate capacity
Do the arithmetic that turns a hand-wavy design into a defensible one.
Course content
4 modules · 1h 37m
01Core Building BlocksThe three components that appear in nearly every architecture diagram, and what each one is actually for.38m
02Data at ScaleWhat happens to your database when one machine is no longer enough.18m
03API Design at ScaleThe contract other systems depend on, and how it behaves when they misbehave.21m
04Reliability and OperationsKnowing what your system is doing, and what it does when a dependency stops answering.21m