All courses
SYSD 101Free

System Design 101: Foundations

Build the system behind a food-delivery app you name: estimate the load, run traffic through the diagram, see where it breaks and fix it within budget. From a few regular restaurants to opening day. No programming needed.

  • Beginner
  • In Vietnamese or English
  • About 8 to 10 hours
  • 8 sections
  • 44 lessons
Start learning

Sign in with Google or GitHub and the course opens in the Academy with the same account.

Course outline

  1. Section 1

    Getting started

    • Where are you now?

      Check · 10 min

    • What this course trains, and how

      Lesson · 6 min

    • Name your app

      Lesson · 2 min

  2. Section 2

    Where does an order go? (requests, servers, databases)

    • From tapping "Order" to the restaurant getting it

      Lesson · 10 min

    • Each component does one job

      Lesson · 8 min

    • How fast is fast?

      Lesson · 8 min

    • What we measure

      Lesson · 10 min

    • The first order runs through the system

      Practice · 10 min

    • Looking back at chapter 1

      Lesson · 5 min

  3. Section 3

    Do the math before you press Run (estimation)

    • From users to requests per second

      Lesson · 8 min

    • How many database reads is one menu view?

      Lesson · 8 min

    • Capacity and utilisation

      Lesson · 8 min

    • The bill at the end of the month

      Lesson · 8 min

    • Open the app to your friends

      Practice · 25 min

    • Looking back at chapter 2

      Lesson · 5 min

  4. Section 4

    One machine is no longer enough (scaling out, load balancers)

    • A bigger machine or more machines?

      Lesson · 8 min

    • Who hands customers to the machines?

      Lesson · 8 min

    • More customers, slower, but not evenly

      Lesson · 8 min

    • A machine goes dark at lunchtime

      Lesson · 8 min

    • Don't keep every machine in one place

      Lesson · 8 min

    • The first lunch rush

      Practice · 30 min

    • Looking back at chapter 3

      Lesson · 5 min

  5. Section 5

    Stop asking the database the same question (caching, CDNs)

    • Everyone views the same menu

      Lesson · 8 min

    • The cache just restarted

      Lesson · 8 min

    • Reopen the app and the chosen dishes are gone

      Lesson · 6 min

    • Dish photos weigh more than the page

      Lesson · 8 min

    • The holiday menu

      Practice · 30 min

    • Looking back at chapter 4

      Lesson · 5 min

  6. Section 6

    The database has limits too (Little's law, replicas)

    • A slow database freezes the whole app

      Lesson · 10 min

    • Finding one order among a million

      Lesson · 6 min

    • Many reads, few writes

      Lesson · 8 min

    • A placed order is missing from history

      Lesson · 6 min

    • A night that wipes the data

      Lesson · 6 min

    • The busy restaurant

      Practice · 30 min

    • Looking back at chapter 5

      Lesson · 5 min

  7. Section 7

    What nobody waits for can wait (queues, workers)

    • The "Order" button spins while an email goes out

      Lesson · 10 min

    • When does the queue run dry?

      Lesson · 8 min

    • The messaging service slows down

      Lesson · 6 min

    • Does a retry send it twice?

      Lesson · 6 min

    • Order notifications

      Practice · 30 min

    • Looking back at chapter 6

      Lesson · 5 min

  8. Section 8

    Milestone: Opening day

    • Plan before you build

      Lesson · 10 min

    • Holding up on opening day

      Practice · 40 min

    • What you now have in hand

      Lesson · 8 min

    • How far have you come?

      Check · 10 min

    • What will you do first next time?

      Lesson · 5 min