Classic System Designs
Eleven worked designs for the problems that come up again and again: rate limiters, key-value stores, feeds, chat, search suggestions, video and file storage.
11 lessons2 h 5 minIntermediate
What you'll learn
0 of 11 lessons complete
Who this is for and what you will be able to do
Who this is for
Developers who know the basics (scaling, caching, databases, queues) and want to practise designing complete systems, or who are preparing for system design interviews.
After this course you will be able to
- Walk through a design in a clear order: requirements, estimates, high-level design, deep dive, scale and failure
- Explain the key algorithm or data structure behind each classic problem
- Compare alternatives and justify a choice with the trade-offs
- Reuse building blocks such as consistent hashing, queues and caches across different designs
Topics it coversDatabase ShardingRate LimitingWebSocketsAll topics
How a lesson works
Interactive diagram
See how each component connects, then run a request through it.
Plain-words toggle
Switch between the technical explanation and a plain-language one.
Practice design
Change a design of your own in the builder and see how it holds up.
Quiz and exercise
Test your understanding before moving on.
Go deeper
These lessons are written from scratch. The books below are excellent next reads.
- System Design Interview, An Insider's Guide (volumes 1 and 2)by Alex Xubook-length treatments of many of these problems
- Designing Data-Intensive Applicationsby Martin Kleppmannthe theory behind storage, replication and streams
- The Amazon Builders' Libraryby Amazon engineersreal-world write-ups on reliability and scaling