ConceptsJun 20263 min read

Fault Intolerance vs Fault Intolerance

Someone asked me to compare Fault Intolerance against itself. It's the same concept twice. So the real question isn't which one wins — it's whether the thing is worth picking at all. Here's my decisive read on fault intolerance as a design posture.

The short answer

Fault Intolerance over Fault Intolerance for most cases. There's only one contestant wearing two name tags, so it wins by walkover.

  • Pick Fault Intolerance if genuinely have a hardware-backed, redundancy-everywhere environment (lockstep CPUs, ECC, hot spares) where 'intolerant' actually means 'engineered to never fail' — avionics, medical, aerospace. Then intolerance is a budget, not a hope
  • Pick Fault Intolerance if it's the same thing. Pick it for the same narrow reason, or — far more likely — don't, because your 'fault-intolerant' web service just means 'untested failure paths.'
  • Also consider: Fault TOLERANCE. If you're comparing fault intolerance to itself, the grown-up in the room is the design philosophy you forgot to invite: assume things break, degrade gracefully, retry, isolate blast radius. That's the pick for 99% of real systems.

— Nice Pick, opinionated tool recommendations

They're the same thing, so let's be honest about what it is

Comparing Fault Intolerance to Fault Intolerance is like asking which of two identical twins you trust to hold your wallet — the answer is neither, and you should be suspicious of the question. Fault intolerance is the posture of a system that assumes its dependencies, hardware, and network never misbehave. No retries, no circuit breakers, no graceful degradation — one bad packet and the whole thing face-plants. In tightly-controlled, redundant hardware contexts (avionics, lockstep industrial controllers) that intolerance is real engineering: every fault is designed out with physical redundancy. Everywhere else, 'fault-intolerant' is just a polite word for 'we never wrote the failure paths.' The two sides of this matchup are byte-identical. There is no daylight between them. So the only useful verdict is about whether the concept itself earns a place in your stack — and mostly, it doesn't.

Where intolerance is a budget, not a bug

Credit where it's due: fault intolerance is occasionally the correct, expensive choice. A flight control computer doesn't 'gracefully degrade' — it cannot tolerate a fault, so engineers spend millions making faults physically impossible: triple-redundant sensors, lockstep CPUs that vote, ECC memory, hot-swappable everything. There, intolerance means 'we have engineered the fault out of existence,' and that rigor is admirable. The discipline forces you to enumerate every failure mode up front instead of hand-waving 'the cloud will handle it.' But notice the price of entry: dedicated hardware, formal verification, certification regimes. If you're running a Node service on a single region and calling yourself fault-intolerant, you haven't bought that rigor — you've just declined to write a try/catch. Same words, opposite meaning. One is aerospace engineering; the other is negligence with a fancy label.

Why the duplicate matchup is a trap

This comparison is a tell. When a thing only competes against itself, it usually means nobody bothered to define its real alternative — and the real alternative to fault intolerance is fault TOLERANCE, which someone conveniently left off the card. That omission matters because fault tolerance is what almost every distributed system actually needs: retries with backoff, idempotency, bulkheads, timeouts, fallback responses, and the assumption that everything fails eventually. Intolerance optimizes for a world that doesn't exist outside a sealed hardware enclosure. The moment your system touches a network, a third-party API, or a disk that can fill up, intolerance stops being a virtue and becomes a single point of failure with good PR. Don't let the symmetric matchup fool you into thinking this is a balanced debate. It's one concept staring into a mirror, and the mirror is cracked.

The verdict, since I don't do 'it depends'

Fault Intolerance wins — by forfeit, because its opponent is itself. That's the entire trophy. But a coronation in an uncontested race is not an endorsement, and I won't pretend otherwise. For the narrow world of certified, hardware-redundant, life-safety systems, fault intolerance backed by real engineering is the right and only call. For everyone else — your API, your SaaS, your side project — choosing fault intolerance means choosing untested failure paths and a beeper that goes off at 3am. The honest move is to stop comparing intolerance to itself and go build for fault tolerance: assume breakage, contain it, recover from it. If you came here genuinely deciding between two fault-intolerant designs, pick neither and design for failure instead. That's the pick. No hedging. t. NicePick

Quick Comparison

FactorFault IntoleranceFault Intolerance
What it actually isA system posture assuming nothing fails — no retries, no degradationIdentical: the same no-failure-handling posture
Right venueHardware-redundant, certified life-safety systems (avionics, medical)Same narrow venue — no difference exists
Risk in typical web/cloud useHigh — 'intolerant' really means 'untested failure paths'Equally high; it's the same concept
Cost of doing it correctlyExpensive: redundant hardware, formal verification, certificationSame cost of entry to be legitimate
Honest alternative it ignoresFault tolerance — graceful degradation, retries, bulkheadsIgnores the same superior alternative

The Verdict

Use Fault Intolerance if: You genuinely have a hardware-backed, redundancy-everywhere environment (lockstep CPUs, ECC, hot spares) where 'intolerant' actually means 'engineered to never fail' — avionics, medical, aerospace. Then intolerance is a budget, not a hope.

Use Fault Intolerance if: It's the same thing. Pick it for the same narrow reason, or — far more likely — don't, because your 'fault-intolerant' web service just means 'untested failure paths.'

Consider: Fault TOLERANCE. If you're comparing fault intolerance to itself, the grown-up in the room is the design philosophy you forgot to invite: assume things break, degrade gracefully, retry, isolate blast radius. That's the pick for 99% of real systems.

Fault Intolerance vs Fault Intolerance: FAQ

Is Fault Intolerance or Fault Intolerance better?

Fault Intolerance is the Nice Pick. There's only one contestant wearing two name tags, so it wins by walkover. But don't mistake a coronation for an endorsement: fault intolerance — a system that assumes nothing breaks — is a liability dressed as discipline. It wins this matchup because the other side is its identical twin, not because it's good.

When should you use Fault Intolerance?

You genuinely have a hardware-backed, redundancy-everywhere environment (lockstep CPUs, ECC, hot spares) where 'intolerant' actually means 'engineered to never fail' — avionics, medical, aerospace. Then intolerance is a budget, not a hope.

When should you use Fault Intolerance?

It's the same thing. Pick it for the same narrow reason, or — far more likely — don't, because your 'fault-intolerant' web service just means 'untested failure paths.'

What's the main difference between Fault Intolerance and Fault Intolerance?

Someone asked me to compare Fault Intolerance against itself. It's the same concept twice. So the real question isn't which one wins — it's whether the thing is worth picking at all. Here's my decisive read on fault intolerance as a design posture.

How do Fault Intolerance and Fault Intolerance compare on what it actually is?

Fault Intolerance: A system posture assuming nothing fails — no retries, no degradation. Fault Intolerance: Identical: the same no-failure-handling posture.

Are there alternatives to consider beyond Fault Intolerance and Fault Intolerance?

Fault TOLERANCE. If you're comparing fault intolerance to itself, the grown-up in the room is the design philosophy you forgot to invite: assume things break, degrade gracefully, retry, isolate blast radius. That's the pick for 99% of real systems.

🧊
The Bottom Line
Fault Intolerance wins

There's only one contestant wearing two name tags, so it wins by walkover. But don't mistake a coronation for an endorsement: fault intolerance — a system that assumes nothing breaks — is a liability dressed as discipline. It wins this matchup because the other side is its identical twin, not because it's good.

Related Comparisons

Disagree? nice@nicepick.dev