La dégradation gracieuse (graceful degradation) est le principe selon lequel une application doit continuer de fonctionner — en mode réduit — quand l'un de ses composants tombe, plutôt que de s'effondrer entièrement. Une dépendance externe indisponible, un service tiers lent, une fonctionnalité en panne : le système absorbe le choc et offre une version diminuée mais utilisable, au lieu d'une page d'erreur.
Une Panne Locale N'Est Pas Une Panne Globale
L'enjeu est d'isoler les défaillances : qu'un service tiers en panne ne fasse pas tomber toute l'application. Concrètement, on enveloppe les appels risqués, on renvoie une valeur neutre en cas d'échec, et on laisse l'appelant afficher un état dégradé — un bloc vide, une donnée mise en cache, un message d'attente — plutôt qu'une erreur fatale.
Dégrader N'Est Pas Masquer
Le piège est d'avaler l'erreur en silence. Une bonne dégradation reste observable : on journalise la cause réelle, on alerte si la panne dure, et l'utilisateur sait qu'une donnée est indisponible plutôt que de la croire à jour. Combinée à un cache, elle forme un filet à deux niveaux — tant que le cache est chaud, la panne reste même invisible.
La dégradation gracieuse est un choix de conception, pas un correctif : elle se décide en écrivant chaque appel à une dépendance, en se demandant « que se passe-t-il si ça ne répond pas ? ».