Load simulator
See what breaks before the interviewer asks
Build a Twitter clone, from 100 users to a second region. Guess what breaks. Run a real load test. Read why.
Free. No sign-up. Your progress stays in this browser.
A real run
Same traffic. Three designs
5,000 users are coming. Pick a design and watch it take the load. The numbers come from the real engine, not from a picture.
One 1-core server. The database lives on the same box.
- p95 latency
- 10 s (timeouts)
- Overlimit 500 ms
- Errors
- 75%
- Overlimit 1%
- Busiest part
- Full
- Overof its CPU
- Cost
- $12
- OKbudget $100 a month
Fails. It breaks at about 1,250 users. The CPU of server 1 is full, so requests wait in a queue.
Why, in the room’s own words
- The test broke at about 1,250 users. App server 1 could not keep up.
- Each user sends 1 request every 5 seconds. So 1,250 users send about 250 requests per second.
- Each request needs 3 ms of app CPU and 1 ms of database CPU on the same box. That is 4 ms in total.
- 250 requests × 4 ms = 1,000 ms of CPU every second = 1 core.
- App server 1 has 1 vCPU. It can do at most 1,000 ÷ 4 × 1 = 250 requests per second.
- So this part is full at about 1,250 users. After that, requests wait in a queue until they time out.
- At your goal of 5,000 users that is 1,000 requests per second. That needs about 4 cores. You have 1.
A small piece of Level 2. The real level also has crashes, traffic spikes and slow queries.
How a level goes
Guess. Run. Read why.
Most levels follow the same three steps. You learn from the gap between your guess and the result.
- 01
Guess
Before you run, click the part you think breaks first. From Level 2, you also guess how many users it takes. Your guess is the lesson. You see what your gut got wrong.
- 02
Run
A load test of about 10 seconds. The users climb, and the charts show p95 latency, errors and the CPU of every box.
- 03
Read why
The result comes with the sums in plain numbers, so you can say the same sums in an interview.
8 levels
From one server to two regions
Each level adds one idea, and one new way for your design to break. All of them are free. Levels 1 and 2 open at once. Each later level opens after the one before it, or you can choose to try it early.
- 01
One server, 100 users. Level 1, free, no sign-up.
One serverStart here
100 users and one small server. Nothing breaks, until one popular link does.
- 02
5,000 users are coming to a $12 server. Keep p95 under 500 ms.
Lesson 26: Scale up or scale out, and why servers must be stateless
- 03
Reads are crushing the database. Level 3, free. It opens after Level 2, or you can try it early.
Caching
About 20 people read a tweet for every one that is written, and 8,000 users are online.
Lesson 31: Caching basics: hit, miss, TTL, hit rate
- 04
Writes and reads outgrow one database. Level 4, free. It opens after Level 3, or you can try it early.
Read replicas
20,000 users, 4 reads for every write. A copy of the data is always a little behind.
Lesson 40: Why do I see old data after saving? (replica lag)
- 05
One primary can't hold every write. Level 5, free. It opens after Level 4, or you can try it early.
Sharding
4,500 GB of data. The biggest box is 16 vCPU, and one shard's disk holds 1,000 GB.
Lesson 43: Sharding: splitting data across servers
- 06
Everyone follows the celebrity. Level 6, free. It opens after Level 5, or you can try it early.
Fan-out
One tweet from an account with 2,500,000 followers has to reach 2,500,000 timelines.
Lesson 76: A feed for 10 million followers: build early or on demand (fan-out)
- 07
A user in the far corners of India is 170 ms from Mumbai, but only 28 ms from a CDN edge. 3,000 users are online.
Lesson 36: CDN: serving files from near the user
- 08
Frankfurt is 125 ms from Mumbai, there and back. If Mumbai goes dark, the other region must take over.
Lesson 90: Multi-region: latency, failover, data residency
The lessons are part of the course, which has 125 lessons in 19 modules. See the course.
Why you can trust it
No AI in the engine. Same input, same result.
The load test is plain code
The same design on the same numbers gives the same result every time. It uses no credits and it costs you nothing to run.
It does the sums in front of you
The Why panel shows requests a second, milliseconds of CPU and how many cores you need. It is the same working you would say out loud in a round.
It is a model, not your production
It teaches the shape of the problem: what fills up first, and why. It does not promise the same numbers as your own servers. All numbers are estimates.
Take it as an interview
Then defend your design out loud
In the Simulator Mock, an AI interviewer asks you to explain your design. When you make a claim, it runs your claim on this same engine and reacts to the real numbers.
It needs an account and uses one interview credit. Every account starts with one free.
Example
YouOne 8-core server is enough for 5,000 users.
The interviewer ran it: it held
- Worst p95
- 24 ms
- Busiest part
- 50% full
- Cost
- $96 a month
InterviewerIt held. What happens if that one box dies?
Free to read
Lessons behind this page
The idea behind each level is a free lesson. Read it before or after you play.
Questions
Before you play
Do I need to sign up?
No. Every level opens without an account. Your progress is saved in this browser, so clearing your browser data clears it.
Is it really free?
Yes. All the levels are free, with no AI and no credits. The Simulator Mock is the one step that uses an interview credit: an AI interviewer tests your claims on this engine. Every account starts with one free.
Is it realistic?
It is a model, not a copy of production. It teaches the shape of the problem: what fills up first, and why. Use it to build the instinct, not to size your real servers.
Is an AI deciding the result?
No. The load test is plain code. The same design on the same numbers gives the same result every time.
Break something. Learn why.
Level 1 takes a few minutes. No account, no card.