# Fault Tolerance and Resilience

## Resilience vs Fault Tolerance

Resilience and Fault Tolerance are closely related concepts, but they are not exactly the same.

* **Fault Tolerance** refers to a system’s ability to continue functioning correctly even when part of the system fails. A fault-tolerant system can detect and handle failures without significant disruption to its operations. This is achieved through redundancy, replication, failover mechanisms, or backup processes. The goal is to prevent failures from affecting the user experience.
* **Resilience** goes beyond fault tolerance. It refers to the system’s overall ability to withstand, recover from, and adapt to failures or unexpected disruptions. A resilient system may experience partial failures, but it can recover quickly, maintain core functionality, and return to its normal state after an issue is resolved. Resilience also emphasizes a system’s ability to evolve and improve after recovering from failures.

In summary:

* **Fault tolerance** is about continuing operations during a failure.
* **Resilience** is about the system’s ability to recover, adapt, and bounce back stronger after failure.

Both are essential for building robust distributed systems, but resilience involves a broader scope, encompassing recovery and adaptability.
