pranay mundra

faults-lab

atropos · zeus · manteion — the Fate who cuts the thread, the lightning-thrower, and the oracle

A fault-injection research platform — inject faults at service boundaries, isolate each service's contribution to tail latency under concurrent load.

GoOpenTelemetrygRPCKubernetesk6VegetaPostgres github ↗
  • SDK-level injection at HTTP middleware & gRPC interceptor boundaries
  • cache-box primitive freezes services into cached-response replay
  • W3C Baggage propagation for end-to-end trace correlation

My MS research at UCSC. The question: when a request crosses ten services and the p99 goes bad, which service actually owes you the milliseconds? Aggregate dashboards can’t answer that — everything degrades together under load, and blame diffuses.

faults-lab answers it with three components, each named for its job:

atropos (the Fate who cuts the thread) is an instrumentation SDK that embeds at service boundaries — HTTP middleware, gRPC interceptors — and injects faults: latency, TCP toxics, CPU/IO stress. Its sharpest tool is the cache-box primitive: freeze a service into replaying cached responses, effectively removing it from the latency equation, so you can measure every other service’s contribution in isolation.

zeus-go (throws the lightning) is the load orchestration layer: declarative JSON workflow DAGs, persona-based k6 sidecars, and a policy engine that auto-triggers Vegeta attacks when conditions are met.

manteion (the oracle at Delphi) runs experiments end to end — schedules fault campaigns, watches the traces come back, and persists verdicts in Postgres. The current work-in-progress is experiment resume and a smarter attack scheduler.

All of it is correlated with W3C Baggage so a single trace ID follows a request through injected chaos from edge to leaf. Recently I’ve been exploring what an Antithesis-style deterministic hypervisor would buy the platform — which sources of interference disappear when the whole system under test is deterministic.

← all projects

esc
↑↓ navigate · ↵ open agents: llms.txt