Dernière mise à jour : 15/10/2026
En informatique, l'idempotence est la propriété d'une opération dont l'exécution répétée a le même résultat final que si elle n'avait été appliquée qu'une seule fois. Si vous envoyez cinq fois la même requête à un serveur, un système idempotent garantit que l'état du serveur reste inchangé après la première tentative réussie.
En plus de garantir le même résultat, une caractéristique clé des opérations idempotentes est qu'elles ne produisent aucun effet secondaire lors d'appels supplémentaires. C'est une condition essentielle à la conception de systèmes distribués résilients, où des interruptions de réseau intermittentes ou des délais d'expiration peuvent amener un client à envoyer plusieurs fois le même message.
En mathématiques et en informatique, l'idempotence est la propriété d'une opération dont l'exécution répétée produit exactement le même état du système et le même résultat que si elle n'avait été appliquée qu'une seule fois.
Dans les architectures cloud distribuées, les API et les systèmes de traitement des paiements, l'idempotence est essentielle pour la tolérance aux pannes : elle permet aux clients et aux services de relancer en toute sécurité les requêtes réseau ayant échoué ou ayant expiré, sans provoquer d'effets secondaires indésirables tels que des enregistrements ou des frais en double.
Relancez les requêtes en toute sécurité après un délai d'expiration ou une coupure de connexion, sans risque de dupliquer des actions (comme débiter deux fois une carte de crédit).
Les utilisateurs n'ont pas besoin d'un système complexe de suivi d'état pour savoir si une requête précédente a réussi ; il leur suffit de "réessayer jusqu'à ce qu'elle aboutisse".
Les systèmes distribués peuvent se rétablir après un plantage en rejouant les journaux ou en renvoyant les messages manqués, sans corrompre les données.
La norme REST définit le comportement des différents types de requêtes Web. Certaines méthodes HTTP sont naturellement "sûres" ou idempotentes par conception, ce qui signifie que la spécification prévoit qu'elles se comportent de manière prévisible, même lorsqu'elles sont répétées. D'autres servent à créer des données et nécessitent une attention particulière pour pouvoir être réutilisées sans risque.
Selon la RFC 9110, plusieurs méthodes standards sont intrinsèquement idempotentes. La répétition de ces actions ne doit pas modifier l'état du serveur au-delà de la requête initiale.
Certaines méthodes ne sont pas idempotentes, car leur rôle principal consiste à modifier les données afin de créer une nouvelle ressource ou de mettre à jour une partie d'un enregistrement existant.
L'idempotence est souvent nécessaire dans les systèmes que nous créons. Dans certains cas, elle est gérée automatiquement. Dans d'autres cas, c'est à nous, développeurs, d'intervenir pour la mettre en œuvre.
L'exemple le plus connu est le problème de la double facturation. Si le navigateur d'un utilisateur se bloque au moment de payer un vol, l'utilisateur risque de cliquer à nouveau sur "Payer". Une API de paiement qui utilise une clé d'idempotence garantit que le deuxième clic est reconnu comme une nouvelle tentative. Cela protège le compte bancaire du client et réduit les coûts opérationnels liés au traitement des remboursements pour les transactions en double.
Des outils comme Terraform et Ansible reposent sur l'idempotence. Lorsque vous exécutez un script pour "créer un bucket de stockage de 10 Go", l'outil vérifie l'état actuel de votre cloud.
Les API Web modernes implémentent souvent l'en-tête Idempotency-Key (désormais un projet IETF standardisé) pour permettre aux développeurs de créer des intégrations plus robustes.
Une opération "upsert" (mise à jour ou insertion) est une opération de base de données idempotente classique. Au lieu d'une simple insertion, une opération upsert indique : "Si cet enregistrement existe, mettez-le à jour. Sinon, créez-le."
Google Cloud propose plusieurs outils qui facilitent l'implémentation de ces modèles pour les développeurs. Développer sur une plate-forme gérée réduit la quantité de code récurrent que vous devez écrire pour assurer la sécurité de vos données.


Découvrez comment déployer des services résilients et idempotents sur Cloud Run dès aujourd'hui.