Formulating hypotheses, containing blast radius, preparing experiments instead of running them blindly
Chaos engineering only works when an experiment rests on a clear hypothesis and the possible damage is deliberately bounded beforehand. Claude is excellent for formulating hypotheses around network latency, pod kills and resource limits, and for thinking through blast radius before the first production experiment, but it should be understood as a preparation tool, not as something that autonomously triggers failures in production systems.
Table of Contents
- 1. Chaos Engineering Is Not Random Breaking
- 2. Formulating a Testable Steady State Hypothesis with Claude
- 3. Preparing Network Latency Experiments with Claude
- 4. Designing Pod Kill Experiments for Kubernetes with Claude
- 5. Thinking Through Resource Limit and Exhaustion Experiments
- 6. Containing Blast Radius Before the First Production Experiment
- 7. Claude as a Preparation Tool, Not an Autonomous Execution Engine
- 8. Preparing an Experiment Runbook with Claude
- 9. Limits: Claude Does Not Know Your Production Topology
- 10. Summary
- 11. FAQ
1. Chaos Engineering Is Not Random Breaking
The term chaos engineering often causes a misunderstanding: it is not about randomly breaking things in a production system and seeing what happens, it is about scientifically testing a concrete hypothesis about how the system is expected to behave under a defined disturbance. A serious experiment always starts with a sentence like: if a single pod of the recommendation service fails, we expect the checkout flow to keep running without noticeable delay because a fallback hits a cache.
Claude is an excellent tool for formulating exactly these hypotheses precisely, because writing a testable, falsifiable statement is in practice often harder than the actual technical implementation of the fault injection. A well formulated experiment can later be clearly judged as passed or failed, a vaguely formulated experiment only yields a fuzzy observation without any solid insight.
2. Formulating a Testable Steady State Hypothesis with Claude
The starting point of every chaos experiment is defining a steady state, meaning measurable metrics that show a certain behavior during normal operation, for example an error rate below 0.5 percent and a p95 latency below 400 milliseconds for the checkout endpoint. Claude helps derive a precise, measurable hypothesis from a rough description of the system and its expected redundancy, one that translates directly into a Prometheus query for automated verification during the experiment.
It is important to phrase the hypothesis so that it can actually fail, because only then does the experiment produce real insight. A hypothesis like the system should be robust is worthless because it cannot be objectively disproven, while a hypothesis like the error rate stays below 1 percent throughout the entire experiment is clearly verifiable and delivers a concrete statement about actual resilience whether it succeeds or fails.
# Example prompt for Claude
"Formulate a testable steady state hypothesis for the following
scenario: the recommendation service runs with three replicas
behind a Kubernetes service. One pod will be deliberately killed.
Expected behavior: the checkout flow remains unaffected.
Phrase the hypothesis in measurable terms using error rate and p95 latency."
3. Preparing Network Latency Experiments with Claude
Network latency between services is one of the most realistic and simultaneously least tested failure modes, even though slow but not fully failed dependencies occur far more often in practice than complete outages. Claude helps derive a concrete experiment using tools like Chaos Mesh or Toxiproxy from a description of the target architecture, introducing a defined additional latency between two services, for example 300 milliseconds between the checkout service and the payment provider.
Claude is particularly helpful for thinking through realistic latency distributions instead of a rigid fixed value, since real network problems rarely produce a perfectly constant delay, they tend to produce a distribution with occasional outliers. A corresponding experiment with jitter models real conditions much better and exposes timeout configurations that were designed for constant latency but fail under variable latency.
apiVersion: chaos-mesh.org/v1alpha1
kind: NetworkChaos
metadata:
name: payment-latency-experiment
spec:
action: delay
mode: all
selector:
namespaces: ["checkout"]
labelSelectors:
app: payment-client
delay:
latency: "300ms"
jitter: "100ms"
duration: "10m"
4. Designing Pod Kill Experiments for Kubernetes with Claude
Pod kill experiments verify whether the chosen deployment pattern actually delivers the promised redundancy, for example whether a Kubernetes service seamlessly redirects traffic to the remaining two replicas when one of three fails, without dropping requests. Claude can derive a concrete Litmus or Chaos Mesh manifest from a description of the deployment, including sensible selection criteria for the pod to be killed, for example deliberately targeting the pod with the oldest start time rather than a purely random one.
An often overlooked aspect Claude reliably raises during design is the difference between killing a single pod and the simultaneous failure of several pods within the same availability zone, which represents a much more realistic and dangerous scenario than a single pod restart that Kubernetes handles routinely anyway. Claude suggests escalating the experiment gradually from a single pod up to a full zone outage instead of starting right away with the most drastic scenario.
5. Thinking Through Resource Limit and Exhaustion Experiments
Experiments that artificially push a container's CPU or memory limits reveal how a system reacts to resource scarcity, for example whether an out of memory kill leads to a clean restart or whether unpersisted state gets lost and data ends up inconsistent. Claude helps specify such an experiment precisely, including the question of what share of available resources should be artificially consumed to remain realistic without being immediately catastrophic.
An aspect Claude regularly raises in this context is the difference between a hard, immediate resource limit and a gradually increasing consumption over several minutes, since both scenarios can trigger different failure paths in the system, for example different autoscaling rule behavior or different reaction times of health checks.
apiVersion: chaos-mesh.org/v1alpha1
kind: StressChaos
metadata:
name: memory-exhaustion-experiment
spec:
mode: one
selector:
namespaces: ["checkout"]
labelSelectors:
app: checkout-service
stressors:
memory:
workers: 1
size: "512MB"
duration: "5m"
6. Containing Blast Radius Before the First Production Experiment
Before an experiment ever runs in production, the maximum possible damage, the so called blast radius, has to be deliberately bounded. Claude is good for systematically walking through every dimension along which blast radius can be contained: a single pod instead of all replicas, a small percentage of traffic instead of the entire user base, a narrow time window outside peak hours instead of an unbounded experiment, and a clearly defined kill switch condition that automatically aborts the experiment immediately once reached.
It is especially valuable to explicitly ask Claude about the worst possible outcome of a planned experiment before it even starts. This deliberate upfront reflection often exposes gaps, for example that a planned network latency experiment could theoretically also affect a payment provider webhook that triggers duplicate charges on timeout, a risk easily overlooked when focus stays purely on the technical implementation.
7. Claude as a Preparation Tool, Not an Autonomous Execution Engine
One central principle should hold for every use of Claude in a chaos engineering context: Claude prepares experiments, formulates hypotheses, generates manifests, and helps think through blast radius, but the actual execution of an experiment in a production environment remains a deliberate, human controlled decision with a defined start time and responsible people present who can intervene immediately if needed.
An automated system that autonomously decides when and how strongly a chaos experiment runs in production carries a fundamentally different risk profile than a prepared manifest a human manually launches after review. Claude Code can certainly help write and test the execution scripts themselves, but the actual start command in production should always be triggered by a person with full context on the current system state.
8. Preparing an Experiment Runbook with Claude
Every planned chaos experiment needs a short runbook that records, before it starts, which metrics get watched, what state counts as an abort condition, and what a manual rollback looks like in an emergency. Claude works well for automatically producing such a runbook as a structured checklist from the formulated hypothesis and the defined blast radius, one that can be followed step by step during the experiment.
Such a runbook should also explicitly record who holds the decision making authority for an immediate abort during the experiment, since in practice unclear ownership causes more escalated incidents than the experiment itself. Claude can propose this role assignment as a fixed part of the generated template so it does not get forgotten anew every time.
9. Limits: Claude Does Not Know Your Production Topology
Claude knows neither the actual current topology of your production system nor hidden dependencies that are documented nowhere, for example an unprotected internal cron job that happens to run at the same time as the planned experiment. Every experiment plan generated by Claude therefore needs to be reviewed by someone with current system knowledge before it runs even in a staging environment, let alone production.
Chaos engineering also thrives on a culture of psychological safety, where teams can talk openly about weaknesses an experiment exposes without it turning into blame. Claude can substantially support the technical preparation, but the organizational maturity and discipline for regular, well prepared game days is something the team has to build and maintain itself.
| Experiment type | Fault injection | Typical hypothesis | Sensible abort condition |
|---|---|---|---|
| Network latency | Artificial delay with jitter between two services | Checkout stays functional within the timeout budget | Error rate exceeds 2 percent |
| Pod kill (single) | Deliberate restart of one of several replicas | Traffic is seamlessly rerouted to remaining replicas | p95 latency exceeds the defined threshold |
| Zone outage | Simultaneous failure of several pods in one zone | System remains available at reduced capacity | Error rate exceeds 5 percent or timeout occurs |
| Resource exhaustion | Artificial CPU or memory saturation | Autoscaling reacts within the defined time | Critical service becomes fully unreachable |
| DNS outage | Temporarily broken name resolution for a dependency | Retry and fallback logic absorbs the outage | Cascading failure in unrelated services |
Mironsoft
AI-assisted development, agent workflows, and team processes
Using Claude or other AI tools on the team, but without a clear workflow?
We set up AI-assisted development workflows for teams, from CLAUDE.md conventions to subagent strategies to code review processes that combine human oversight with AI speed.
Workflow Setup
Cleanly set up CLAUDE.md, project conventions, and tool permissions for the team.
Agent Strategy
Build subagent and automation workflows for recurring development tasks.
Team Onboarding
Train developers in productive, safe use of AI coding assistants.
10. Summary
Chaos Engineering with Claude: FAQ
Hypotheses
Claude formulates testable, measurable steady state hypotheses instead of vague robustness claims.
Fault injection
Concrete Chaos Mesh and Toxiproxy manifests for latency, pod kills, and resource limits.
Blast radius
Systematic containment by scope, traffic share, time window, and abort condition.
Preparation, not execution
Claude prepares experiments, a human always triggers the actual start in production.