Idempotency
Idempotence
L'idempotence signifie que refaire la même opération prévue a le même effet sur le serveur que de la faire une seule fois. Les réponses n'ont pas besoin d'être identiques.
Un autre exemple
Après qu'un paiement a expiré, un acheteur réessaie avec la clé d'idempotence `8f2…` et le même hachage de demande normalisé. Le serveur renvoie le premier paiement au lieu de facturer à nouveau. La même clé avec un montant différent est rejetée, et les clés expirent selon une politique écrite.
Parties principales
- 01identité de l'opération
- 02Détection des doublons
- 03Effet stable et résultat stocké
Utilisez-le lorsque
Rendez les nouvelles tentatives sûres pour les réseaux peu fiables, les files d'attente, les appels de paiement et les systèmes qui peuvent délivrer un message au moins une fois.
Ne l'utilisez pas lorsque
`POST` n'est pas toujours non idempotent. Une clé d'idempotence ne remplace pas non plus les transactions, l'autorisation ou les vérifications de conflit.
Nom utilisé dans le code
HTTP method semantics and/or scoped idempotency key with request fingerprint Avant d'expédier
Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback.
Outcome: Complete the task with Idempotence (Idempotency). User context: Après qu'un paiement a expiré, un acheteur réessaie avec la clé d'idempotence `8f2…` et le même hachage de demande normalisé. Le serveur renvoie le premier paiement au lieu de facturer à nouveau. La même clé avec un montant différent est rejetée, et les clés expirent selon une politique écrite. Technical concept or control: Idempotence (Idempotency). Why it fits: Rendez les nouvelles tentatives sûres pour les réseaux peu fiables, les files d'attente, les appels de paiement et les systèmes qui peuvent délivrer un message au moins une fois. Do not use it when: `POST` n'est pas toujours non idempotent. Une clé d'idempotence ne remplace pas non plus les transactions, l'autorisation ou les vérifications de conflit. Engineering requirements: Define inputs, outputs, contracts, and rules that must always hold. Set authorization and input checks. Define failures, timeouts, retries, one-time effects, data moves, and compatibility limits. Operations: Add useful signals and logs that hide sensitive data. Set capacity limits and write an operator guide. Test recovery and rollback. Acceptance criteria: Contract and failure-path tests pass. Data and authorization rules still hold during retries and partial failures. Check performance limits, monitoring, recovery, and rollback. Evidence and limits (evidence boundary): La norme couvre uniquement le champ d'application énuméré. Elle ne choisit ni le style visuel, ni la décision de produit, ni l'exemple de Vibulary. Unknowns to confirm: Where the code runs, data stores, traffic shape, consistency needs, and the security boundary. Also confirm the compatibility period, service goals, and rollback limits.
Vérifiez cette demande
Review how Idempotence (Idempotency) is used now. Definition: L'idempotence signifie que refaire la même opération prévue a le même effet sur le serveur que de la faire une seule fois. Les réponses n'ont pas besoin d'être identiques. Release checks: Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback. Before changing code, list the evidence, gaps, severity, and the smallest safe fix.