System design practice · free, no sign-up

Learn when to use a component, not just what it is.

Courses hand you the finished diagram. Litmus gives you the requirements and an empty canvas, then judges every box as you build: right-sized, over-built, or about to break.

Users
App
Redis
Postgres
Kafka

Same diagram. Different scale. Different answer.

Move the traffic and watch the boxes change their minds. These are the same verdicts the practice canvas gives you.

Peak requests per second · 100 ms latency budget

1k/s

Works, but something here is over-built.

Users

1k reads/s

App server

Right-sized

1k/s of 2k/s — 51% used.

Redis cache

Over-built

At 1k/s Postgres isn't busy, so it answers redirects well within 100ms on its own.

Postgres

Right-sized

2% used, but one instance is already the smallest setup. Nothing to shrink.

How it works

    • 10k redirects/s
    • 100 : 1 reads
    • p99 50 ms
    • 99.9% uptime

    1.Read the requirements

    Traffic, read/write ratio, latency, durability. They set the load, not a slider you pick at random.

  1. 2.Design on an empty canvas

    Drag in components and wire them up. There's no reference diagram to copy from.

  2. Right-sizedOver-builtBreaks

    3.Every box gets a verdict

    Right-sized, over-built, or breaking, each with a one-line reason. Change the scale and guess what flips first.

Problems

See all

People learning system design memorize reference architectures instead of working them out. They over-build by default, like Kafka with no async work to do or sharding at 10k users, or under-build without noticing, like one small database at 10k reads/s. Nothing tells them while they're designing. Litmus does.

Pick a problem