Specialty · System design Free to read
System Design tutorial
Estimate the load, then cache, shard, rate-limit and queue: the building blocks of systems that stay up, each one coded and tested.
Learn it by doing
The interactive course has the same lessons with an editor next to them: run every example, answer the quizzes and solve exercises that are checked the moment you submit. Free to start, no sign-up.
Start the interactive course1
1
Back-of-the-envelope estimatesHow many servers does an app with a million users need?2
CachingHow do you make a slow database feel fast?
Size and speed
Estimate load and storage; speed up reads with a cache.2
3
Load balancing and consistent hashingHow do you spread data over many servers, and add one without chaos?4
Rate limitingHow do you stop one client from flooding your API?5
Queues, retries and idempotencyWhat happens when requests arrive faster than you can handle them?