An open-source guide

Learn how to design large-scale systems.

Concepts, trade-offs and worked interview solutions, in a form you can actually read. Everything is a trade-off; this is where to learn them.

ClientbrowserLoad balancerL4 / L7App serverstatelessApp serverstatelessApp serverstatelessCachehot readsPrimary DBwritesReplicareadsreplication
16Concept pages
8System design solutions
6Object-oriented exercises
3Anki flashcard decks

Interview prep

Pick your path

You do not need to know everything. Match the depth to the time you have.

Full study guide →

Learn

The map of system design

Ordered the way you meet these problems as a system grows.

All topics →

Start here

Fundamentals

Network & edge

Application

Data

Labs

Learn by poking at it

Simulations and calculators: size a system, break a cache, partition a database.

All labs →

Practice

Worked solutions

Diagrams, back-of-the-envelope maths and the reasoning behind each choice.

All exercises →
Esc
↑ ↓ to move↵ to open