Build. Break. Reconcile.
A small, offline-first distributed-systems architecture builder for interview practice.
The point is not trivia and not reproducing a canonical diagram. Every run begins with:
Client → API → Database
Then requirements, failures, scale, security and operational reality earn the next component or mechanism.
No build step. No dependencies. No account.
Open index.html in a modern browser.
python3 -m http.server 8080Then open http://localhost:8080.
This is static HTML/CSS/JS, so GitHub Pages can serve the repository root directly.
- Push the folder to a GitHub repository.
- Repository Settings → Pages.
- Deploy from the branch/root containing
index.html.
No framework or package install is required.
- Read one Reality card.
- Make the smallest move that addresses it.
Run High Tide.- If the architecture fails, read the consequence, not a trivia score.
- Add/remove/replace a piece or attach a control and try again.
- Click Three Faces periodically to compare requirements, runtime, and what failure revealed.
Pieces are architectural components such as Queue, Worker, External System, Fan-out, Archive, Search, Cache and Human.
Controls are mechanisms attached to the architecture: idempotency, outbox, retry, DLQ, backpressure, bulkheads, concurrency control, reconciliation, audit, trace IDs, PHI minimization, etc.
The product name is an implementation skin. A conceptual Worker can become Lambda or ECS without creating a new conceptual box.
- Control Plane Ladder: default progressive path from async work through idempotency, outbox, unknown outcomes, backpressure, audit, security and human recovery.
- Audit Pipeline Ladder: authoritative audit intent, fan-out, archive/search split, PHI and schema evolution.
- Multi-Tenant Jobs Ladder: long jobs, retries, poison work, overload, fairness and compute fit.
- AWS / Product Fit Sprint: practice changing implementation choices only when the requirement earns them.
- Shuffle: Reality Attacks: mixed deck.
The game is grounded in the supplied Aptible system-design prep repository, especially:
minimum.mdBE-HERE.mdTHREE-FACES.mdnotes/08-failure-modes.mdnotes/13-aws-choice-map.mdnotes/05-consistency-outbox-idempotency-saga.mdnotes/04-messaging-sqs-rabbit-kafka.mdnotes/06-data-store-choices.mdnotes/07-networking-security.mdnotes/09-scale-cost-simplicity.md- the four supplied practice scenarios and walkthroughs
This is deliberately a v1 study tool, not a distributed-systems oracle. The scoring gauges are directional game feedback, not claims that architectures can be reduced to four magic percentages.
- The board auto-lays out a deliberately small set of component types rather than becoming a generic diagram editor.
- Challenge checking is rule-based and intentionally narrow.
- There is no backend or shared state.
- A future version could add generated cards, richer edge guarantees, campaign authoring, saved run histories, and an MCP-backed evidence mode that constructs Requirements / Runtime / High-Tide views from real company tools.
- Two-row board layout with wider connector spacing and wrapped arrow labels.
- Unknown-outcome/reconciliation turn now treats the external provider as a scenario fact, so selecting Reconciliation is sufficient.
- Reset now immediately re-renders the base Client → API → Database state and clears run misses/history.
- Successful turns remain visible until you press Continue….
- Failed turns now show the still-missing component/control names instead of making you guess why the move did not pass.