Rehearsing Failure and Expiring Old State

Lesson 1 of 4

Rehearse One Fault at a Time

Estimated time: 10 minutes

Rehearse failure with injected faults

A system that has never failed on purpose has never shown how it recovers. Injecting one fault at a time, in a place that can be reversed, turns an assumption about recovery into something seen.

One fault at a time

Two faults at once make the result impossible to read. Inject one, watch what happens, and stop before the next is started.

Watch the recovery path

The interesting part of a drill is not the fault, it is the way back. Watch whether the system recovers on its own or needs a hand, because that is the behaviour a real incident will call on.

def drill_ok(result):
    return result.recovered and result.impact <= result.budget

Bound the impact

A rehearsal should not be able to cause the harm it was meant to reveal. Give the drill a budget and stop the fault when the budget is spent.