All courses
SYSD 201Coming soonComputer Science

System Design 201: Systems under load

Your food-delivery app gets drivers and opens more cities. The database starts to struggle, a lunchtime downpour makes orders spike, one slow service makes the whole app wait. You learn to keep the system standing under heavy load and failures, with a bill that still makes sense.

  • Intermediate
  • About 10 to 12 hours
  • 8 sections
  • 44 lessons

This course is being written and is not open yet. The outline is below; leave your email if you'd like to hear when it opens.

Tell me when it opens

Course outline

  1. Section 1

    Getting started

    • Where are you now?

      Check · 10 min

    • Your app gets drivers

      Lesson · 8 min

  2. Section 2

    The database can't carry it (partitioning, sharding, failover)

    • Old orders crowd out new ones

      Lesson · 8 min

    • One database is not enough for the whole country

      Lesson · 10 min

    • One restaurant goes viral

      Lesson · 10 min

    • The primary stops

      Lesson · 10 min

    • Database peak season

      Practice · 25 min

    • Looking back at chapter 1

      Lesson · 5 min

  3. Section 3

    Drivers send their location every few seconds (write-heavy data)

    • Thousands of drivers, one dot each

      Lesson · 10 min

    • Batch, then write

      Lesson · 10 min

    • Which order goes to which driver?

      Lesson · 10 min

    • Messages arrive out of order

      Lesson · 8 min

    • Rush hour on the roads

      Practice · 25 min

    • Looking back at chapter 2

      Lesson · 5 min

  4. Section 4

    Rain at half past eleven (traffic surges)

    • Orders triple in ten minutes

      Lesson · 8 min

    • New machines take time too

      Lesson · 10 min

    • Everyone taps "retry"

      Lesson · 10 min

    • A thousand people ask for the same dish

      Lesson · 10 min

    • Turn some away to keep serving

      Lesson · 10 min

    • A rainy lunch

      Practice · 25 min

    • Looking back at chapter 3

      Lesson · 5 min

  5. Section 5

    One slow part, the whole app waits (failure isolation)

    • Waiting forever on a service that never answers

      Lesson · 10 min

    • Knowing when to stop calling

      Lesson · 10 min

    • Search eats the ordering page's capacity

      Lesson · 10 min

    • One big chain takes all the quota

      Lesson · 8 min

    • Updating without an outage

      Lesson · 8 min

    • The day payments act up

      Practice · 25 min

    • Looking back at chapter 4

      Lesson · 5 min

  6. Section 6

    Opening more cities (CDN, regions)

    • Menu photos far from the viewer

      Lesson · 10 min

    • Adding a server region

      Lesson · 10 min

    • A whole region goes down

      Lesson · 10 min

    • Two places edit the same order

      Lesson · 8 min

    • Search results lag behind

      Lesson · 8 min

    • Telling followers about a promotion

      Lesson · 8 min

    • The third city

      Practice · 25 min

    • Looking back at chapter 5

      Lesson · 5 min

  7. Section 7

    The cloud bill doubles (cost)

    • How much infrastructure does one order cost?

      Lesson · 8 min

    • Big machines running half empty

      Lesson · 10 min

    • Cheap machines that can be taken back

      Lesson · 10 min

    • What's needed now, what can wait for tonight

      Lesson · 8 min

    • Cut the bill, not the service

      Practice · 25 min

    • Looking back at chapter 6

      Lesson · 5 min

  8. Section 8

    Milestone: New Year's Eve

    • Plan for the busiest night of the year

      Lesson · 10 min

    • Holding up on New Year's Eve

      Practice · 30 min

    • How far have you come?

      Check · 10 min

    • Looking back at chapter 7

      Lesson · 5 min

Suggestions, never requirements: every course is open on its own.