Change the inputs. Watch the system respond.

Interactive system design simulators for caching, sharding, replication, consensus and more. Intuition beats memorising.

  1. 1Pick an idea. Each simulation is one big idea in system design, explained in plain words first.
  2. 2Start from an experiment. One click sets up a situation. Then change any knob and watch the system respond.
  3. 3Check what stuck. Read how real systems do it, answer four questions, and follow links to go deeper.
Your progress0 of 34 understood

Open a simulator, try its experiments, and press Mark as understood when it makes sense. Kept in this browser, and with your account when you are signed in.

Start hereCachingLRU vs LFU vs FIFO. See why a small cache can absorb most traffic.
34 of 34 simulators

Storing and finding data

How data is kept on disk, found quickly, and searched by place.

Spreading and protecting data

Splitting data across machines, and keeping it safe when machines fail.

Copies and agreement

Keeping copies in step, agreeing on one answer, and what happens when they disagree.

Keeping a service up

Sharing traffic, protecting a service, and surviving failures and retries.

Speed and waiting

Why systems get slow, and where the time goes.

Want to build the real thing? The Code Labs have you write and run these pieces in your browser, the System Builder lets you draw a whole system and run traffic through it, the Chaos Lab breaks a ready-made design on purpose so you can see what survives, and the Cost Estimator turns your traffic into a monthly bill, and the Whiteboard gives you a blank page for sketching one out by hand, and System Architect Survival turns ten escalating incidents into a scored game.