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
Sign in with Google or GitHub and the course opens in the Academy with the same account.
Course outline
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
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
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
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
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
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
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
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