Engineering · Resilience

Design for interruption, ambiguity and recovery.

Reliable software should remain understandable when responses are lost, work is interrupted, state becomes stale, dependencies fail, or an operation completes only partially.

Core practices

Resilience is not hiding errors

A resilient product can still fail. The difference is that the failure is bounded, visible, recoverable where possible, and does not silently manufacture success.

For the open-source project's effect/retry model, see the agent timeout article and CrashLab.