Fault Tolerance
ELI5 - The Vibe Check
Fault tolerance is designing a system that assumes parts of it will break, so it plans for that instead of hoping it doesn't happen. A fault-tolerant system doesn't just survive a server crashing, it barely notices, because it was built from the start with the expectation that servers crash.
Real Talk
Fault tolerance is the property of a system that allows it to continue functioning correctly, without interruption, even when one or more of its components fail. It differs subtly from resilience, which allows continuing in a degraded state, by aiming for continued correct operation despite faults, commonly implemented through redundancy, replication, error detection and correction, and automatic failover, and is a prerequisite for high availability.
Show Me The Code
async function fetchWithFallback(primary, backup) {
try {
return await primary()
} catch (err) {
console.warn('primary failed, falling back', err)
return await backup()
}
}
When You'll Hear This
"The cache node died but the cluster is fault tolerant, nobody even noticed." / "Fault tolerance means the system survives the failure, not just recovers from it eventually."
Related Terms
Auto-Failover
Auto-failover automatically switches to a backup system when the primary one fails — no human intervention needed. Your database server dies at 3 AM?
Circuit Breaker
Circuit Breaker is like the electrical circuit breaker in your house.
High Availability
High availability means your system keeps running even when a piece of it inevitably fails, because in production, something is always failing somewhere.
Replication
Replication means automatically copying your database to one or more other servers in real time. If the main server dies, a replica takes over.
Resilience
Resilience is your system's ability to get punched in the face by a dependency going down, a traffic spike, or a bad deploy, and keep serving users anyway...