Free to play · No account for chapter 1

Design a backend. Watch it break. Fix it.

Everything holds until it doesn't.

Overload is a system-design simulator. You build the architecture, declare your own API, and deterministic traffic ramps up until something gives. The same build fails the same way every time, so you can learn from it.

No account for the first chapter · no card · retries always unlimited

InternettrafficBalanceroneComputeone boxDatabaseno cachehealthy178 rps · measured ceiling
Arriving
54 rps
Served
54 rps
Dropped
0 requests
The one-box build of the URL shortener. Its 178 rps ceiling is what the engine measured; this replays that curve. The real run is in the first lesson.

Traffic climbs from 10 to 1,000 requests per second. The database holds until 178 requests per second, then saturates and every request beyond that is dropped.

Scores are re-run on the server, so the leaderboard is real.

Doubling the compute changes nothing.

One brief: a URL shortener that has to carry a million users. Four builds, and what each one actually sustains before it starts dropping requests — measured by the engine, not asserted by us.

Build 1 of 4

One box, no cache

178rps sustained

InternetBalancerComputereads + writesDatabaseceiling

Everything on one compute box, straight into the relational store.

Three steps from a blank board to a broken build.

  1. Step 1

    BalancerComputeDatabaseCache

    Draw the topology

    Drop a balancer, compute, a cache and a database onto the board, then wire them together.

  2. Step 2

    GET /:codePOST /api/shortenreadswrites

    Bind your API onto compute

    Declare the endpoints, then say which box serves each one. Nothing does it for you.

  3. Step 3

    gives out here

    Run it under load

    Traffic ramps until something gives. The report says what failed, where, and why.

Learn it, then do it without a guide.

Track 1 · Foundations

One app, built lesson by lesson

You build one bus-tracking app across the course, from a single server to caches, replicas, shards and queues. Free, and it stays free.

Track 2 · Real World

Briefs with nobody holding your hand

Levels from Easy to Hard, each with a budget, a traffic shape and things that go wrong. Easy levels are free; Medium and Hard will need Pro when it launches.

A leaderboard worth reading.

Nothing tells you the traffic mix

A shortener is overwhelmingly reads. Working that out — and realising the read path is what has to scale — is the exercise. Print it on the brief and there is nothing left to solve.

Your API is yours to design

You declare the endpoints and bind them onto compute, many to many. Put the read flood and the write path on one box and watch the valuable traffic starve first.

Scores are computed server-side

Your browser animates the run. The server re-runs the identical simulation and records what it gets. That is the only reason a leaderboard here is worth reading.

Questions, answered.

Do I need an account?

Not for the first chapter: its four lessons play without one. Saving your progress and putting runs on the leaderboard need an account.

What does deterministic mean?

The same build fails the same way every time. The traffic has no random noise in it, so when a run breaks you can change one thing and know that what you see next is the effect of that change.

Can I use my own language or framework?

There is no code. You design the architecture on a board, declare your API's endpoints, and decide which box serves each one. Nothing to install and nothing to deploy.

What will it cost?

Foundations and every Easy level in Real World are free, and stay free. Medium and Hard will need Pro when it launches, and anything you pass before then stays yours. The details are on the pricing page.

How is the score computed?

The server re-runs your build through the identical simulation and records what it gets, not what your browser showed. The leaderboard ranks by that verified score, with throughput per dollar breaking ties, so overspending costs you.

Find out where your design breaks.

No account, no card, unlimited retries.