La tolérance aux pannes commence par une définition claire du problème de défaillance : identifier ce qui peut tomber en panne, déterminer quelles hypothèses sont fiables et définir le comportement attendu d'un système distribué en situation de contrainte. Ce cours présente les concepts fondamentaux et les modèles de conception (design patterns) qui sous-tendent les services résilients, abordant des sujets allant du confinement et du consensus jusqu'au rétablissement, à la messagerie, à l'observabilité et aux stratégies de repli. Il s'adresse aux personnes concevant ou assurant la maintenance de systèmes distribués et souhaitant acquérir une vision pratique des arbitrages qui conditionnent la fiabilité des logiciels.
Le cours aborde les modèles et hypothèses de défaillance, la redondance et le confinement des pannes, les quorums, la cohérence et le consensus, ainsi que la durabilité et les mécanismes de récupération des données. Il traite également des tentatives de réexécution, de l'idempotence, de la contre-pression (backpressure), de la messagerie asynchrone résiliente, de l'observabilité pour l'isolement des pannes, ainsi que de la dégradation gracieuse avec des mécanismes de repli sûrs.