SynfraCore
Synfracore
Start Learning
Navigation

Academies

Platform

RoadmapsLabsCertificationsInterviewPYQsAI AssistantCareer
Start Learning Free🗺️ Learning Roadmaps

Chaos EngineeringNotes

Key takeaways, tips, and important points to remember

✍️
Written by senior engineers. Reviewed for technical accuracy.· Updated 2025 · SynfraCore Chaos Engineering Team
Expert Content

Chaos Engineering — Notes

Core mental model

Chaos engineering discovers failure modes nobody has thought of yet — HA/DR design defends against failure modes that are already known. They're complementary, not competing practices.
An experiment without a precise, falsifiable steady-state definition isn't a real experiment — "things look fine" isn't a claim that can fail.
Blast radius is the entire safety model. Start with one pod, in staging, with a tested abort mechanism, before anything bigger.
A "Pass" verdict is only as trustworthy as the steady-state definition and blast radius behind it — a vague check or an under-scoped experiment can pass without proving anything real.

Tool selection, at a glance

LitmusChaos — Kubernetes-native, CRD-based (ChaosEngine), the common starting point for teams fully on Kubernetes.
Chaos Mesh — Kubernetes-native, particularly strong for network-specific experiments (latency, packet loss, partition).
AWS FIS — managed, AWS-native (EC2/ECS/EKS/RDS), built-in stopConditions tied to CloudWatch alarms.
Gremlin — enterprise SaaS, polished UI and governance, real license cost versus the open-source options.
Toxiproxy — application/test-level network fault injection, not a full production chaos platform.

Failure categories worth testing, beyond "kill the pod"

Infrastructure: pod/instance termination, AZ failure, disk exhaustion, CPU/memory stress
Network: added latency, packet loss, service-to-service partition — reveals timeout/cascading-failure gaps that hard-kill tests miss entirely
Application: forced error responses, slow endpoints, dropped DB connections, corrupted cache entries
Security (less common, genuinely underused): simulate a revoked credential, a NetworkPolicy violation, or a condition a SIEM/Falco rule is supposed to catch — tests whether security controls actually work, not just whether they're configured

Game days — what makes them actually useful

Define the scenario and hypothesis ahead of time; keep exact trigger timing unknown to the responder to simulate a real page
Run the same incident-response process (severity, comms, incident commander) that would apply to a real outage
Time-to-detect and time-to-mitigate are the metrics that matter — not just pass/fail
A blameless retro afterward, focused on the gaps found (monitoring, alerting, runbooks) — the gaps are the actual output of a game day, not a side note

Maturity progression

Ad hoc → Structured (regular game days, blameless retros) → Automated (known-safe experiments run in CI/CD against every release) → Continuous (automated gates + ongoing exploratory game days for high-risk scenarios)
Most teams plateau at "Structured" — moving to "Automated" requires a track record of a specific experiment run manually and safely, many times, before trusting it to block a pipeline
Higher-risk experiments (full AZ/region failure, security chaos) need explicit organizational buy-in and a scheduled window — never treated as routine automated gates

Common mistakes worth remembering

Assuming the abort/kill-switch mechanism works without ever actually testing it before the real experiment
A label selector matching more resources than intended — verify exact match scope before applying anything destructive
Running the experiment against production due to a misconfigured namespace/env var, when staging was intended
Concluding "the system is resilient" from a network-chaos experiment without first confirming the injection actually landed on the real traffic path
Share:
Join our Community
Daily tips, job alerts, interview help — join engineers learning together
Also Worth Exploring
← Back to all Chaos Engineering modules
CheatsheetsPYQ