Skip to content

Approach #15: Chaos Engineering - Test Resilience Under Failure #19

Description

@ikennaokpala

Chaos Engineering: Deliberately Break Things

Inject failures in staging. Prove system handles them gracefully.

Chaos Scenarios

  1. API Latency: Inject 5s delay → Does UI freeze?
  2. API Failures: Return 500 errors → Does app crash?
  3. Network Partition: Drop packets → Does reconnection work?
  4. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions