Návrh tolerantný chybám deteguje, zadržuje, maskuje alebo rekonfiguruje okolo chýb tak, že prevádzka zostáva v rámci uvedených limitov správnosti, kapacity, časovania a bezpečnosti, niekedy na zámerne degradovanej úrovni služby.
Požiadavka musí definovať, ktoré chyby, kombinácie a trvania má systém tolerovať. Návrhy môžu používať replikáciu, hlasovanie, korekciu chýb, nezávislé napájacie alebo komunikačné cesty, diverzné implementácie, zmierenie stavu a elegantnú degradáciu, podporené monitorovaním a opravou.
Kľúčové body
Definovať správnu službuŠpecifikovať esenciálne funkcie, povolenú degradáciu, predpoklady chýb, čas detekcie, správanie obnovy a bod, v ktorom je bezpečné vypnutie preferovateľnejšie než pokračujúca prevádzka.
Vytvoriť nezávislosťOddeliť repliky a podporné napájanie, siete, identity, administráciu a lokality tam, kde model hrozieb vyžaduje; zvážiť diverzitu proti spoločným defektom.
Chrániť stavRiadť replikáciu, usporiadanie, kvórum, konzistenciu, detekciu korupcie a reintegráciu tak, aby redundantné komponenty nešírili zlé údaje ani nevytvárali konfliktné akcie.
Dôležité obmedzenieSamotná redundancia nie je tolerancia chýb. Zlyhania spoločného módu, zdieľané závislosti, návrhové defekty, korelované útoky, vyčerpaná kapacita a nesprávna detekcia zlyhania dokážu poraziť každú repliku, zatiaľ čo pridaná komplexnosť môže zaviesť nové chyby.