The Premise
failures are inevitable; SURPRISE is optional.
traditional testing: does it work when everything's fine?
chaos engineering: does it stay acceptable when things break?
inject failures DELIBERATELY, in controlled conditions,
to verify resilience claims your architecture makes:
"circuit breakers work" → prove it by killing a dependency
"AZ failure is a non-event" → prove it by blackholing an AZ
"fallbacks engage" → prove it under real load
unverified resilience assumptions = incidents waiting
for the worst possible moment.
The Method (not random sabotage)
the experiment loop:
1. HYPOTHESIS: "killing recommendations service keeps product
pages <800ms with fallback content serving 100% of sessions"
← measurable, falsifiable, specific
2. BLAST RADIUS CONTROL: start tiny — 1% of traffic,
one instance, staging first
3. RUN + MEASURE: steady-state metrics vs hypothesis
4. ABORT CONDITIONS defined BEFORE: p99 breach, error spike
→ automatic rollback of the experiment
5. LEARN: fix what breaks; re-run until boring
if the system surprises you: you found a real weakness
for the cost of a controlled experiment instead of a 3am outage.
The Experiment Menu
| Injection | Verifies |
|---|---|
| Instance kill / crash | self-healing, drain behavior |
| Latency injection (+500ms) | timeout/breaker tuning |
| Dependency blackout | fallbacks, degradation ladders |
| Network partition | split-brain handling, quorum |
| Disk full / cert expiry | operational monitoring coverage |
| Clock skew | ordering logic assumptions |
| AZ blackhole | zonal independence claims |
tools of trade: chaos-mesh/litmus (k8s), AWS FIS,
gremlin, homegrown scripts. tool matters less than method.
Safety Rails
chaos done wrong IS an outage. guardrails:
□ STAGING FIRST, always; production only after boring results
□ MINIMUM blast radius that still tests the hypothesis
□ AUTOMATIC abort on user-impacting metric breach
□ BUSINESS CALENDAR awareness: never during peak/launches
□ GAME DAYS: scheduled chaos with humans watching = training
□ ORGANIZATIONAL buy-in explicit — surprise chaos destroys trust
maturity path:
unit-level fault injection → integration chaos →
game days → continuous automated chaos in prod
each step only after the previous became boring.
Interview Framing
“How would you validate this design actually survives dependency failure?” scored shape: chaos-engineering framing (hypothesis-driven experiments), concrete example experiment with metrics and abort conditions, safety-rail list, staging-to-prod maturity path. Designs that END with a verification plan read as engineered rather than hoped — close your resilience sections with it.
Premium Content
Unlock Chaos Engineering and all premium lessons with a subscription.
All premium lessons
Ad-free experience
Priority support
From ₹199.99/year — See plans