What recovery forbids
What this article forbids
- Reconstruction without a copy, a log or a recipe. There is no fourth source, and "highly available" is not one.
- Low steady-state cost and short recovery distance together. Their product is roughly fixed; you move along the curve.
- Faithful recovery of a nondeterministic computation. You get a valid state, not the state, and no mechanism detects the difference.
- Safe promotion without enforcement at the shared resource. Agreement among reachable nodes says nothing about the one that is not answering.
- Detection that is both fast and accurate. One knob, two errors, and no extra information to buy with.
- Undo past an externally visible effect.
- Termination of replay when drain rate ≤ arrival rate.
- RTO independent of state size, once the state is larger than restore bandwidth × RTO.
Escapes and what each costs
| Escape | Buys | Costs | Paid by |
|---|---|---|---|
| Retry | recovery with no stored artifact | wasted work; amplification when the fault is not independent | the dependency, at its worst moment |
| Keep the log | reconstruction of any state, no failure diagnosis needed | determinism you cannot verify; headroom that caps utilization | the operator, as an unexplained utilization target |
| Checkpoint | a bound on recovery distance | steady-state stall plus a collector for old checkpoints | the write path, continuously |
| Lineage | about 10⁻⁹ of the storage for full reconstructability | fan-in amplification; needs immutable sources | the scheduler, at the worst moment |
| Hot standby | RTO ≈ 0 | a full duplicate, plus RPO = lag, plus fencing complexity | capital cost, always |
| Intent + scan | resolvable ambiguity at every boundary | 2× write amplification; an index of in-flight work | the critical path, per operation |
| Immutability | undo as a pointer move; retires most of ARIES | space and cleaning work; retention bounds the window | the janitor, and the storage bill |
| Blacklisting | restored independence for retry | a classifier that can exclude the whole fleet | capacity, silently |
Two escapes have no real cost and are reached for last: structuring the operation so the irreversible act is last, and making the recovery path idempotent by version comparison rather than by care.