Module 066 min

Risk, reliability, resilience

You can't prevent every failure. You can decide which ones you're willing to have, and what the system does in the ninety seconds after.

After this module
  • You can score a failure mode with severity, occurrence and detection, and know when the score is lying to you.
  • You can tell reliability apart from resilience, and name the pattern that addresses each.

Risk is not a feeling. It is a claim about two things: how bad it would be, and how likely it is. Written that way, risks become comparable, and mitigation becomes a budget decision instead of an argument.

RISK MATRIX · SEVERITY × LIKELIHOOD 123 45 severity → 543 21 likelihood → B A C D B PII in a response — severity 5, unlikely, unacceptable A provider outage — severity 4, occasional, mitigate with fallback C stale documents — severity 2, frequent, fix ingestion D cost spike from retries — severity 3, occasional, cap the budget
Position is an argument, not a measurement. The value of the plot is that it forces the two questions — how bad, how likely — to be answered with evidence and written down.

6.1FMEA: score the failure, not the component

Failure mode and effects analysis walks each way a system can fail and scores three things from 1 to 10:

Severity (S)
How bad the consequence is if it happens: 1 trivial, 10 catastrophic. Safety, data loss and legal exposure push this to 9–10 and short-circuit the arithmetic.
Occurrence (O)
How often the cause is present: 1 vanishingly rare, 10 near-constant. Base it on incident history or measured rates, not optimism.
Detection (D)
How likely you are to catch it before the user does: 1 certain, 10 invisible. Poor observability raises D as effectively as it raises risk.

The product, S × O × D, is the risk priority number (RPN), range 1–1000. It is a rough sort, not a verdict — which is exactly why the calculator below shows the advice text, not just the number.

Try it · FMEA scoringRPN = S × O × D
7
4
6
168 Medium

Try severity 10 — the advice should override the arithmetic. A catastrophic failure is not "acceptable because RPN is 60".

6.2Mitigate in this order

  1. Eliminate — remove the failure mode by design. Don't store the secret at all; don't allow the destructive action.
  2. Reduce — lower likelihood or severity: validation, limits, bulkheads, smaller blast radius.
  3. Detect — catch it earlier: health checks, canaries, output validation, alerting on the right signal.
  4. Recover — make failure survivable: retries with backoff, fallbacks, checkpoints, graceful degradation.
  5. Accept or transfer — consciously keep the risk, or move it (insurance, contract terms, vendor SLA). Write down that you chose this.

Most teams jump to step 4 because it's the one that fits in a sprint. But a retry on a failure you could have designed out is just a more expensive version of the same bug.

6.3Reliability is not resilience

ReliabilityResilience
QuestionHow often does it fail?How well does it behave when it does?
View of failureDeviation to be preventedNormal, to be absorbed
Typical toolsRedundancy, testing, quality, capacity marginCircuit breakers, fallbacks, degradation, runbooks
MeasureUptime, MTBF, error rateTime to detect, time to recover, blast radius

Resilience engineering names four abilities worth building separately: respond (runbooks, on-call, fallbacks), monitor (know what to look for), anticipate (threat models, capacity planning, chaos experiments), learn (blameless post-mortems that change the system). A team with great monitoring and no authority to act has one of the four.

Patterns worth knowing by name — each one addresses a specific failure shape.
PatternFailure it absorbs
TimeoutA dependency that never answers
Retry with backoff + jitterTransient errors; also prevents synchronised retry storms
Circuit breakerA dependency that is failing consistently — stop paying for it
FallbackPrimary gone: cheaper model, cached answer, human queue
BulkheadOne tenant or feature consuming all capacity
Load sheddingOverload: drop low-priority work deliberately instead of randomly
Graceful degradationPartial capability beats a blank error page
CheckpointLong work lost to a crash
The trap · the invisible single point of failure

The dangerous dependencies are the ones nobody calls a dependency: the one DNS provider, the shared CI runner, the person who knows the deploy, the single API key, the spreadsheet that is actually the source of truth. Ask "what would take this down tomorrow?" and keep asking until the answers are boring.

Check yourselfQuestion 1 of 1

An FMEA scores a failure mode S=8, O=6, D=9. Which change reduces risk the most for the least effort?

60-second recap

  • Risk = severity × likelihood, written down with evidence so it can be compared.
  • FMEA scores S, O, D. RPN sorts attention; severity 9–10 overrides the arithmetic.
  • Mitigate in order: eliminate, reduce, detect, recover, accept.
  • Reliability prevents failure; resilience survives it. You need both, and detection is usually the cheapest win.