Learn system design by breaking it.
A free course. You build Gatepass, a ticketing app for gigs, then flood it with traffic and fix whatever fails first.
No sign-up needed. Progress saves in your browser.
Three servers share the load. Fail one and watch where its requests go.
- modules
- 19
- modules
- lessons
- 89
- lessons
- product drills
- 15
- product drills
- of material, all free
- 16 h
- of material, all free
Lessons you can poke
This one is from the caching module. Drag the sliders and watch the hit rate and database load move. No video to sit through: each idea is a small system you run yourself.
Open the full lessonInteractive
Cache hit-rate explorer
Gatepass serves 20,000 page reads a second across 5,000 pages. Choose how many pages the cache holds and how skewed the traffic is.
The classic power law most real traffic follows.
Hit rate
57%
DB queries/s
8,592
limit 4,000
Avg page read
timeouts
Cache memory
800 KB
2% of pages
The misses alone are more than the database can answer. Queues build, requests time out, and the cache's hits can't save the page.
Then design a whole product
Each drill is a product brief and a blank canvas. You write the API, model the data, wire the architecture, and a simulator load-tests it step by step until it holds.
- Ticket bookingHold a seat, take the payment, never sell it twice.Medium, 55 min
- Chat appMessages in order, with delivery ticks, to phones that keep going offline.Medium, 60 min
- Payment systemMoney moves exactly once, even when every network call fails.Hard, 65 min
- Video platformUpload once, transcode to every quality, stream to any network.Medium, 60 min
- Collaborative editorMany people typing in one document, and nobody's edit lost.Hard, 65 min
- PastebinStore text blobs cheaply, serve them fast, and expire them on time.Easy, 40 min
One app, from one server to many cities
Gatepass starts on a single server for one college fest. Every module opens with the next problem it hits as it grows, and ends with the design that fixes it.
Part 1: Foundations
Grow one app from a single server to thousands of requests a second.
- What is system design?49m
- Start with one server2h 6m
- Caching1h 12m
- When one server isn't enough1h
- When one database isn't enough49m
- Live updates40m
- Background jobs48m
- Rate limiting38m
- Growing big40m
- Putting it together41m
Part 2: Distributed systems
What changes when the system is many machines that fail independently.
- Microservices39m
- Problems in distributed systems40m
- Replication in depth56m
- Partitioning in depth38m
- Messaging: queues, pub/sub and Kafka42m
- Transactions across services31m
- Events and streams40m
- Availability and going global31m
Part 3: Under the hood
The algorithms inside big systems, as simulations you can break.
- Classic algorithms in action1h 14m
Free, all of it
The people who most need this material are often the ones least able to pay for it: students, people switching careers, developers where a course subscription costs a week's pay. So there is no paywall, no trial and no upsell. Sign in only to sync progress between devices.
Questions
Do I need an account?
What do I need to know before starting?
How do the drills work?
Will this help with system design interviews?
How long does the course take?
What is Gatepass?
Start with one server.
The first lesson takes 6 minutes. No sign-up, no card.