Repository navigation
DistrLab v1.0.0
DistrLab — a distributed-systems playground that runs entirely in your browser.
Break a live architecture and watch it recover: cache stampedes, queue backpressure, rate limiting, load-balancer strategies, network partitions, replication lag. Tune knobs, inject faults (crash / slow / expire / partition), and read plain-language explanations of what is happening.
Free-tier by design — no backend, no LLM, no paid APIs; a Web Worker on a static page, deployable to any static host.
Scenarios
| # | Scenario | Lesson |
|---|---|---|
| 1 | Playground | healthy baseline: p95, throughput, capacity, queues, cache hit ratio |
| 2 | Cache stampede | single-flight off ⇒ every expiry is a thundering herd on the catalog service |
| 3 | Queue backpressure | shallow queues shed fast; deep queues trade errors for latency |
| 4 | Rate limiting | a token bucket protects the service at the cost of 429s |
| 5 | Load balancer strategies | round-robin / random / least-inflight / sticky under skew and failure |
| 6 | Network partition | health checks + least-inflight route around a cut link |
| 7 | Replication lag | stale replica reads versus primary reads |
Controls: 1–7 switch scenarios · space pause · R reset · click a node for the inspector (crash/slow/expire/partition) · knobs tune arrival/capacity/TTL/single-flight/LB/health/timeouts/lag.
Verifications
- 12/12 headless engine tests over all scenarios
- svelte-check clean; production build ~79 kB JS + 29 kB worker (~33 kB gzipped)
- headless-browser smoke test: mount, canvas render, scenario switch, inspector, transport controls — zero runtime errors
Demo GIF, screenshots, and render.yaml (static-site deployment) attached.