Beginner Topic 16 of 51 Distributed Systems & Cloud
Fault Tolerance
Continuing correctly despite component failures.
How it works
Fault tolerance is a system's ability to continue operating correctly despite failures of components. Techniques include redundancy of hardware and software, replication of data and services, failover with health detection, retries with backoff, timeouts, circuit breakers, graceful degradation, checkpointing and recovery, isolation of failure domains through bulkheads and avoidance of single points of failure. Faults are classified as crash, omission, timing and Byzantine, and design assumes failures are normal.
Where it is used
Cloud services, databases, telecom, aviation and financial systems build in fault tolerance, and chaos testing validates it.
Common pitfall
Redundancy that shares a common cause, such as the same zone, power or software bug, fails together. Failover paths that are rarely exercised often fail. Retries without limits amplify outages into retry storms. Detecting failure accurately is hard because slow looks like dead. Test failure scenarios regularly, set sensible timeouts and design for partial failure.
Where it fits in the course
Fault Tolerance is topic 16 of 51 in Distributed Systems & Cloud, rated Beginner. It follows Caching Layers. The next topic is Replication Strategies.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Distributed Systems & Cloud quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Distributed Systems & Cloud quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Fault Tolerance?
Where do people use Fault Tolerance?
What is the most common mistake with Fault Tolerance?
What should I learn before this topic?
How can I practice it?
Is Fault Tolerance hard to learn?
How long does it take to learn Fault Tolerance?
Which topics are related to Fault Tolerance?
What should I study after Fault Tolerance?
Related topics
- Caching Layers (Distributed Systems & Cloud)
- Replication Strategies (Distributed Systems & Cloud)
- Load Balancing Algorithms (Distributed Systems & Cloud)
- Consistency Models (Distributed Systems & Cloud)