# MicroProfile Fault Tolerance The MicroProfile Fault Tolerance specification defines strategies to deal with errors inherent in distributed microservices. The MicroProfile Fault Tolerance specification defines the following strategies to handle errors: * Timeout Define the amount of time within which an execution must finish. Defining a timeout prevents waiting for an execution indefinitely. * Retry Define the criteria for retrying a failed execution. * Fallback Provide an alternative in the case of a failed execution. * CircuitBreaker Define the number of failed execution attempts before temporarily stopping. You can define the length of the delay before resuming execution. * Bulkhead Isolate failures in part of the system so that the rest of the system can still function. * Asynchronous Execute client request in a separate thread