Fault prevention requires that designers adhere to good engineering practices such as commenting all source code, terminating transmission, isolating signal traces, and providing adequate air-flow for cooling. Hardware should hunt for and identify any odd signal behavior in the system. Fault detection in software requires the addition of checking functions such as continual memory content audits, processor sanity pings and process watch-dog timers to ensure overall system integrity. All of these fault detection processes must be given high priority, because rapid fault detection will decrease the MTTR and increase the overall system availability. Fault avoidance requires that active traffic flows be migrated from a suspicious subsystem to a redundant subsystem so that customer service is not affected.
Protection switching between active and spare subsystems can result in brief service interruption.
The duration of such an interruption must be minimized. If the duration is zero, the switching function is said to be hitless. Once fault avoidance is completed, the system can initiate fault isolation actions that take the suspicious subsystem out of service so that it will not send confusing, error-propagating signals to other subsystems. In addition to isolation of hardware failures, the scope of software failures should also be isolated to limit the effect to a small portion of the system. Fault location processes pinpoint the exact location and nature of the faulty component.