Skip to content

Releases: dsk-dev-ai/distrlab

DistrLab v1.1.0 — circuit breaker & smarter load balancing

Choose a tag to compare

@dsk-dev-ai dsk-dev-ai released this 07 Oct 14:40
264ece7

Resilience depth

Everything from v1.0's seven scenarios, plus deeper failure handling.

Circuit breaker

  • New Circuit breaker scenario (#8): users → breaker → flaky catalog → postgres.
  • Breaker trips OPEN past an error-rate threshold, fast-fails with 503, goes half-open after a cooldown, and closes once its probes succeed.
  • Link down toggle + flakiness + trips-at / cooldown / probe-limit knobs.
  • Inspector Trip / Reset buttons; OPEN / HALF-OPEN badges on the topology.
  • Measured: link down → p95 collapses from ~4020 ms to ~20 ms; repair → "Healthy" returns automatically.

Smarter load balancing

  • Power of two choices (P2C) and least-latency (response-time EMA) join round-robin, random, least-inflight and sticky.

Fixes & quality

  • Health flags now recover after an outage (intermediate nodes are no longer stuck "unhealthy" forever).
  • New headless engine test suite: bun test → 20 passing.
  • New ROADMAP.md (v1.0 → v2.0); README updated for eight scenarios.

Live at https://distrlab.onrender.com

DistrLab v1.0.0

Choose a tag to compare

@dsk-dev-ai dsk-dev-ai released this 06 Oct 18:02

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.