System design practice
Small, visual exercises. Each one describes what a service has to do; you put the right parts into the slots, run the test, and see why every part is there. Start simple, add one idea at a time.
New to the terms? Read System design fundamentals first.
-
Client, server, database
★★★The smallest real web app: where a request starts, who handles it, and where data is kept.
Level 1 -
Slow work in the background
★★★The page must answer at once, but the real work takes ten seconds. Where does that work go?
Level 1 -
One server is not enough
★★★Traffic grew past what one machine can take, and the service must survive a dead server.
Level 2 -
Many reads, few writes
★★★A product catalogue is read a hundred times for every change. The database is getting tired.
Level 2 -
Images for the whole world
★★★The same pictures are viewed from every continent, and far-away users wait too long.
Level 2 -
Never lose the data
★★★If the database machine burns down, the data must survive and the service must keep running.
Level 2 -
The order rush
★★★A sale sends ten times the normal traffic for one hour. Orders must not be lost, even if the order processor can't keep up.
Level 3 -
Put it all together
★★★A service with heavy reads, writes that must never be lost, and users everywhere. Everything you've practised, in one system.
Level 3