Embrace the Tumult
Rust-native chaos engineering, end to end. Define experiments, run them with real telemetry, keep every result, and turn it into evidence.
One Platform, End to End
Tumult is a single platform, not a pile of tools. Every part feeds the next, and the loop closes when what you learn shapes the next experiment.
↺ Recommendations feed back into the next experiment definition.
The Parts of the Platform
Each piece does one job and hands off to the next. Here's what fits where.
CLI & Plugins
Write experiments in TOON and run them from one static binary. 16 plugins, 91 chaos actions: PostgreSQL, MySQL, Redis, Kafka, Docker, Podman, Pumba network chaos, Kubernetes, SSH, CPU/memory/IO stress. Write your own plugin in any language — it's just scripts and a manifest.
Analytics UI
The daemon (tumultd) ingests OTLP traces, metrics, and logs into an embedded DuckDB store, then serves the web UI from the same binary. KPIs, experiment history, log/trace/metric explorers, run control with a live waterfall and a two-step e-stop. Or just ask a question in plain language over the store.
Reports & Compliance
Map experiments to DORA (EU 2022/2554), NIS2, PCI-DSS 4.0, ISO 22301, ISO 27001, SOC 2, and Basel III. R1 executive digests, R2 evidence packs, and R3 game-day reports render as A4 PDFs with document control and hash-chain verification.
MCP Server
40 MCP tools over stdio or Streamable HTTP, with tool annotations, structured output schemas, and tumult:// resources. Any MCP-compatible agent can discover plugins, run experiments, query the analytics lake, and recommend what to test next.
Built to Run Anywhere
Single Binary
One static binary — no Python, no runtime dependencies. Pre-built for macOS (x86_64/aarch64) and Linux (x86_64 gnu/musl, aarch64 musl). Copy it to your PATH and run experiments.
Native OpenTelemetry
Every experiment emits real OTel spans across SSH, Kubernetes, plugins, baselines, analytics, and MCP dispatch. Traces show up in Jaeger, SigNoz, or any OTLP backend — no configuration.
Memory Safe
100% safe Rust across all 22 crates. Zero unsafe blocks in production code. Zero production .unwrap(). Clippy pedantic enforced. cargo-audit on every commit.
GameDay Orchestration
Coordinated campaigns of experiments with shared load, resilience scoring, and compliance article mapping. One command: 4 experiments, DORA/NIS2 evidence, audit-ready journal.
Docker Images
Pre-built on GHCR — no Rust toolchain needed. docker pull ghcr.io/mwigge/tumult. Composable bundles: infra, observability, MCP server, agent fleet. Full e2e in one command.
SigNoz Observability
OTel Collector (contrib) with OTLP + Arrow receivers, span-to-metrics APM, host metrics, Prometheus. Traces flow to SigNoz — dashboards, alerting, log aggregation. No custom build needed.
See It in Action
GameDay: One Command, Evidence Mapped
Compliance reports are evidence summaries, not legal or audit attestations.
The Platform, Running
Every screen below is the Tumult analytics UI on the seeded demo stack (docker compose -f docker/docker-compose.kronika.yml up -d) — from sign-in to an approved, executed, e-stopped and reported run. The full click path is in the platform walkthrough.
Architecture
Native Observability
Every experiment produces a full trace — hypothesis, actions, probes, rollbacks — visible in SigNoz, Jaeger, or any OTLP backend. No configuration required.
Ready to Build Resilience?
One command to install. One script to run a full GameDay with DORA/NIS2 evidence mapping.