.NET Architecture & System Design Interview Question #10

What is fault tolerance?

Architecture Fundamentals, Scalability, Availability & Performance Junior Beginner

Quick Interview Answer

Fault tolerance is the ability of a system to continue providing an acceptable level of service when one or more components fail.

Detailed Explanation

Fault tolerance is the ability of a system to continue providing an acceptable level of service when one or more components fail.

Techniques include redundancy, replication, failover, isolation, retries, circuit breakers, and graceful degradation. Complete fault tolerance is expensive, so the design should focus on failures that matter to the business requirements.

Code Example

Client
  |
Load Balancer
 /          \
App A      App B
             |
      replicated dependency