Design practice

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

0/11

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.