Les réseaux rendent les résultats incertains
Une requête peut atteindre le serveur et être validée avec succès même si le navigateur ne reçoit jamais la réponse. Il est raisonnable de réessayer, mais sans identité de requête stable, le serveur ne peut pas distinguer une nouvelle tentative d'une nouvelle commande.
Pour la création de liens publics, cette ambiguïté peut produire des alias en double, des enregistrements confus ou des effets secondaires répétés.
Une clé représente une mutation prévue
Le client envoie une clé d'idempotence unique avec la demande de création. Le serveur stocke le résultat avec une empreinte digitale de l'entrée. Répéter la même clé et la même entrée renvoie le résultat original.
L'utilisation de la même clé avec une entrée différente est rejetée en tant que conflit. Cela protège à la fois le client et le serveur contre une modification accidentelle de la signification d'une commande précédente.
La durabilité compte dans la production
Un magasin d'idempotence en mémoire est suffisant pour des tests isolés, pas pour un service de production multi-instance. La clé de production et le résultat doivent résider dans la même limite de domaine durable que la mutation, avec expiration et portée du locataire.
Le même schéma s'applique aux paiements, au traitement des webhooks, aux importations et aux emplois pour lesquels un effet de duplication serait coûteux.