Skip to content
Chaos Engineering: Breaking Things on Purpose to Build Unbreakable Systems 3 min

Chaos Engineering: Breaking Things on Purpose to Build Unbreakable Systems

ScaleDojo
ScaleDojo
•
May 11, 2026
•
3 min read
•732 words
Chaos Engineering: Breaking Things on Purpose to Build Unbreakable Systems

Netflix Kills 200 Servers a Day - On Purpose

Every weekday during business hours, Netflix's Chaos Monkey randomly terminates production server instances. Not staging. Not test environments. Production - the same servers streaming video to 238 million subscribers. In 2011, this seemed insane. By 2015, when AWS US-East-1 had a major outage and Netflix stayed up while competitors went down, it seemed brilliant. Chaos engineering is the discipline of proactively injecting failures to discover weaknesses before your customers do.

The Chaos Engineering Process

Chaos Experiment Workflow:

  1. Define Steady State
     Metric: request success rate = 99.5%
     Metric: p99 latency < 200ms
     Metric: orders/minute = baseline +/- 10%

  2. Hypothesize
     'If we kill 1 of 3 API server instances,
      the load balancer will route traffic to
      surviving instances within 5 seconds.
      Steady-state metrics will hold.'

  3. Inject Failure (Blast Radius: LIMITED)
     - Kill 1 instance in 1 availability zone
     - During business hours
     - With rollback plan ready
     - Team watching dashboards

  4. Observe
     Did metrics stay within steady-state bounds?
     YES -> System is resilient to this failure
     NO  -> Found a real weakness, fix it

  5. Expand Blast Radius (gradually)
     Instance -> AZ -> Region -> Multi-service

Netflix's Simian Army

Netflix Chaos Tools:

Tool              What It Does                    Failure Type
----------------  ----------------------------    ---------------
Chaos Monkey      Kill random EC2 instances        Server failure
Chaos Gorilla     Kill entire availability zone    AZ failure
Chaos Kong        Kill entire AWS region           Region failure
Latency Monkey    Inject 500ms-5s delays           Network latency
Conformity Monkey Flag non-compliant instances     Config drift
Security Monkey   Find security vulnerabilities    Misconfig
Janitor Monkey    Clean up unused resources        Resource waste

Modern alternatives:
- Gremlin: managed chaos platform (SaaS)
- Litmus: Kubernetes-native chaos engineering
- AWS Fault Injection Simulator: AWS-managed
- Chaos Mesh: CNCF project for K8s

Common Failure Modes to Test

Chaos experiments should cover the real failure modes that production systems encounter. Instance termination tests if your auto-scaling and load balancing work. Network partition tests if services degrade gracefully when they cannot reach a dependency. Latency injection (adding 500ms to every response from a service) tests if your timeouts and circuit breakers are configured correctly - this often reveals more bugs than outright failures because services hang rather than fail fast. Disk fill tests if your log rotation and monitoring alerts work. DNS failure tests if your services have proper fallback behavior when service discovery is unavailable.

Game Days: The Human Dimension

Automated chaos tests validate the technical systems, but game days validate the human response. A game day is a planned exercise where you inject a realistic failure scenario and the on-call team responds as if it were a real incident. The team must detect the issue through monitoring, diagnose the root cause, decide on a mitigation strategy, and communicate progress to stakeholders. Game days consistently reveal three types of gaps: missing runbooks (the team does not know what to do), alert fatigue (critical alerts are buried in noise), and communication breakdowns (the right people are not notified). Amazon runs weekly game days called Wheel of Misfortune, where a random failure scenario is selected and teams practice incident response.

Building a Chaos Engineering Culture

Chaos engineering only works if your organization supports it. Start with the simplest possible experiment (kill one non-critical instance during low traffic) and share the results - especially when you find real weaknesses. This builds trust. Always have an abort mechanism: every experiment should have a big red button that stops the failure injection instantly if metrics cross dangerous thresholds. Graduate from opt-in experiments to automated, continuous chaos runs as your team's confidence grows. The goal is not to break things - it is to prove your system can handle the failures that will inevitably happen in production.

Interview Tip

Chaos engineering follows a scientific method: define steady-state metrics, hypothesize about failure impact, inject controlled failure, observe results. Start small (one instance) and expand blast radius gradually. The key insight for interviews: chaos engineering is not about finding bugs in code - it's about finding gaps in architecture (missing health checks, no circuit breakers, single points of failure). Game days add the human dimension by simulating full incidents including on-call response.

Key Takeaway

Chaos engineering proves resilience through controlled failure injection. Follow the scientific method: define steady state, hypothesize, inject, observe. Start with small blast radius and expand gradually. Test both technical systems (instance failure, latency, network partitions) and human processes (game days for incident response). The strongest systems are the ones that have already practiced failing.

Enjoyed this article?

Share it with your network to help others level up their system design skills.

Discussion0

Join the Discussion

Sign in to leave comments, reply to others, or like insights.

Sign In to ScaleDojo

No comments yet. Be the first to start the thread!

Enjoyed this? Get more like it.

New levels, features, and one concept worth knowing - straight to your inbox.

No spam, ever. Unsubscribe in one click.

Enjoyed this content?

Your support keeps us creating free resources

We put a lot of hours into researching and writing these guides. If it helped you, consider buying us a coffee. Every bit goes toward keeping ScaleDojo's content free and growing.

$

One-time payment via Stripe. ScaleDojo account required.