Chaos Engineering: Deliberately Break Things
Inject failures in staging. Prove system handles them gracefully.
Chaos Scenarios
- API Latency: Inject 5s delay → Does UI freeze?
- API Failures: Return 500 errors → Does app crash?
- Network Partition: Drop packets → Does reconnection work?
- WebSocket Disconnect: Kill connection → Does auto-reconnect work?
Test
chaosTest('handles slow database', async () => {
chaos.injectLatency('database', { delayMs: 5000 });
// User flow should still work (maybe slower)
const booking = await createBooking();
expect(booking.status, equals('pending'));
chaos.restore();
});
For Each Failure
- Document impact on user
- Root cause (missing retry? timeout? fallback?)
- Implement resilience
- Verify journey works under chaos
Strengths
✅ Tests real-world conditions
✅ Proves resilience
✅ Finds failure modes
Rating: ⭐⭐⭐ (3/5) Great for resilience
Agent: QA-15-Chaos-Engineering
Related: #4
Chaos Engineering: Deliberately Break Things
Inject failures in staging. Prove system handles them gracefully.
Chaos Scenarios
Test
For Each Failure
Strengths
✅ Tests real-world conditions
✅ Proves resilience
✅ Finds failure modes
Rating: ⭐⭐⭐ (3/5) Great for resilience
Agent: QA-15-Chaos-Engineering
Related: #4