Drag a database onto the canvas.
It actually runs.

Torollo is a free, local-first system design lab. Every node you drop becomes a real Docker container on your machine, with a real shell and real networking. Guided roadmaps grade each step against the live state of those containers.

Star on GitHub

MIT licensed · runs entirely on your machine · Docker required

nimbus-books · deploy a resilient three-tier app · step 7 of 10

Validate → ✗ "port 5432 is still open from lb to db" → fix the security group → Validate → ✓ → roadmap complete. No mocks: every verdict comes from the backend inspecting the containers.

The way to learn load balancer is to run one, break it, and read the logs it writes while it fails. 

build

A canvas that provisions

Drop Postgres, Redis, an nginx load balancer, subnets, NAT, security groups. Each card is a container created on your machine the moment it lands. The IP on the card is the container’s actual IP, and the subnet border is a real Docker network.

The Torollo canvas: four running nodes inside a VPC, with the node library open

run

Every node opens a shell

The terminal on each node is docker exec into that container. Query Postgres from the built-in explorer or from psql, ping Redis, curl your load balancer, and set CPU and memory limits per container.

The database inspector: resource limits, replication and partitioning controls, SQL shell
A roadmap step failing validation: the check explains that no container named web exists yet

break

Checks that inspect your containers

A roadmap step is graded by inspecting the live state of your containers. When a check fails, it tells you what it looked at and what it found instead. You pass by changing the architecture until the check observes what it expects.

prove

Every pass leaves a receipt

A validation pass produces a list of observations made against your machine. This is the receipt for step 7 of the three-tier roadmap.

check: container "web-1" is running

check: container "db" is running

check: table "users" exists in "db"

check: web-1 → db is reachable on :5432

check: lb → db is blocked on :5432

✓ step 7 of 10 · validation passed

Three roadmaps ship free

They tell one continuing story: you are the first engineer at a bookstore that keeps outgrowing its architecture. Every step is validated against your containers.

The roadmap format is open JSON. Write your own and the validator runs it. Read the format spec. Beyond the free catalogue, advanced scenario packs live on the pricing page.

What runs underneath the canvas

Local-first

Projects live in ~/.torollo and containers run on your local Docker daemon. Apart from pulling Docker images, the app makes no network calls unless you opt into telemetry.

MIT licensed, engine and format

The canvas, the Docker runtime, the network engine, the terminals, the validator and the roadmap format are all open source. Every node type is included; there is no paid tier of nodes.

Real networking

Subnets become Docker bridge networks. Security groups become iptables rules inside the containers. NAT gateways apply a real MASQUERADE rule.

Boot your first architecture in two minutes.

The only requirement is a running Docker daemon. There is no account to create and no cloud to configure.

View on GitHub