What is Chaos Engineering?
Chaos engineering is the practice of deliberately injecting failures into a system to discover weaknesses before they surface on their own. It treats resilience as something to be verified experimentally rather than assumed from design.
#How chaos experiments work
A chaos experiment starts with a hypothesis about steady state: under normal conditions, error rate stays below a threshold and latency stays within a band. The experiment then introduces a specific failure such as terminating an instance, adding network latency, or making a dependency return errors.
If steady state holds, the system tolerates that failure and the hypothesis is confirmed. If it does not, you have found a weakness under controlled conditions with an abort switch available, which is a dramatically better setting than discovering it at 3am.
#Why chaos engineering works
Resilience mechanisms that have never been exercised usually do not work, and there is no way to know which ones without testing them.
- Verification: timeouts, retries, and failovers are confirmed to behave as designed.
- Hidden coupling: dependencies nobody documented surface immediately.
- Response rehearsal: the team practices incident response on a known problem.
- Controlled discovery: weaknesses are found with an abort switch rather than during an outage.
#Limits and prerequisites
Chaos engineering requires a baseline of maturity. A team without solid monitoring cannot tell whether an experiment caused a problem, and a team already firefighting daily does not need synthetic failures to find weaknesses.
Experiments also need real blast radius control: a defined scope, a monitored steady state, and a fast abort. Chaos without those properties is just breaking production, and it costs the practice its credibility inside the organization for a long time afterward.
#Chaos engineering vs load testing
Load testing answers a capacity question: how much traffic can the system handle and where does it saturate. The variable is volume.
Chaos engineering answers a resilience question: what happens when a component fails. The variable is availability of dependencies. They find different problems. Load testing finds the point where the system breaks under demand. Chaos finds the places where one component's failure propagates further than the design intended. Systems need both, and passing one says nothing about the other.
#Key takeaways
- An experiment defines a steady state hypothesis, injects a specific failure, and checks whether steady state holds.
- Untested resilience mechanisms usually do not work, and testing is the only way to find out which.
- Prerequisites are solid monitoring, defined blast radius, and a fast abort path.
- Load testing finds saturation points while chaos finds propagation paths, and neither substitutes for the other.
#Frequently asked
Should chaos experiments run in production?
Eventually, since staging does not reproduce production traffic, data, or scale. Start in staging to build confidence and practice, then move to production with tight scope.
What is a good first experiment?
Terminating a single instance of a service that is supposed to be redundant. It is low risk and frequently reveals that failover does not work as documented.
When is a team not ready for chaos engineering?
When monitoring cannot detect the induced failure, or when incident load is already high. Fix those first.
Related terms
- 2 min
Proactive Incident Management
Incident managementProactive incident management is the practice of finding and correcting conditions that will cause incidents before they do.
- 2 min
Code Resilience
AI & automationIn this glossary, code resilience refers to the property of software that continues to function acceptably when its dependencies fail, its inputs are…
- 2 min
Blast Radius
Incident managementBlast radius is the extent of what a failure or change can affect.
- 2 min
Graceful Degradation
SRE conceptsGraceful degradation is the design property where a system reduces functionality under failure or load instead of failing completely.