Real systems

Real-World Systems

Lessons on the systems everyone uses but few have designed: collaborative documents, email, maps, stock exchanges, payments, monitoring, plus the concepts behind them.

18 lessons3 h 15 minAdvanced

0/18

What you'll learn

0 of 18 lessons complete

  1. Design collaborative editing (Google Docs)Start 12 minQuizExercise
  2. Design an email system (Gmail)11 minQuizExercise
  3. Design a maps and navigation service12 minQuizExercise
  4. Design a nearby-places service (Yelp)10 minQuizExercise
  5. Design a stock exchange13 minQuizExercise
  6. Design a flash sale system11 minQuizExercise
  1. Why SSDs are fast, and block, file and object storage9 minQuizExercise
  2. How a browser turns a URL into a page10 minQuizExercise
  3. Diagnosing a slow machine: CPU, memory and I/O10 minQuizExercise
  4. How microservices work together11 minQuizExercise
  5. Securing a web API10 minQuizExercise
  6. Shipping safely and handling a large outage11 minQuizExercise

Who this is for and what you will be able to do

Who this is for

Developers who have worked through the basics and the classic designs, and want to see how larger, more specialised systems are put together. Also useful for senior design interviews.

After this course you will be able to

  • Design collaborative editing, email, maps and nearby search at a sensible level of detail
  • Explain how an exchange matches orders in microseconds and how a flash sale survives a traffic spike
  • Describe how payments, cross-border transfers and reconciliation work
  • Design a metrics and alerting system, and diagnose a slow machine methodically
  • Secure an API and handle an outage the way mature teams do

Topics it coversPaymentsAPI GatewayDeploymentEvent Driven ArchitectureGeospatialIdempotencyMicroservicesObservabilityAll 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.