Idempotency
Idempotenz
Idempotenz bedeutet, dass das erneute Ausführen derselben beabsichtigten Operation denselben Servereffekt hat wie einmaliges Ausführen. Die Antworten müssen nicht identisch sein.
Ein weiteres Beispiel
Nachdem eine Zahlung abläuft, versucht der Käufer es erneut mit dem Idempotenzschlüssel `8f2…` und demselben normalisierten Anforderungs-Hash. Der Server gibt die erste Belastung zurück, anstatt erneut zu belasten. Derselbe Schlüssel mit einem anderen Betrag wird abgelehnt, und Schlüssel verfallen gemäß einer schriftlichen Richtlinie.
Hauptteile
- 01Operationsidentität
- 02Dublettenerkennung
- 03Stabile Wirkung und gespeichertes Ergebnis
Verwenden Sie es, wenn
Mach Wiederholungen sicher für unzuverlässige Netzwerke, Warteschlangen, Zahlungsaufrufe und Systeme, die eine Nachricht mindestens einmal liefern können.
Nutze es nicht, wenn
`POST` ist nicht immer nicht-idempotent. Ein Idempotenzschlüssel ersetzt auch keine Transaktionen, Autorisierung oder Konfliktprüfungen.
In Code verwendeter Name
HTTP method semantics and/or scoped idempotency key with request fingerprint Vor dem Ausliefern
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 Idempotenz (Idempotency). User context: Nachdem eine Zahlung abläuft, versucht der Käufer es erneut mit dem Idempotenzschlüssel `8f2…` und demselben normalisierten Anforderungs-Hash. Der Server gibt die erste Belastung zurück, anstatt erneut zu belasten. Derselbe Schlüssel mit einem anderen Betrag wird abgelehnt, und Schlüssel verfallen gemäß einer schriftlichen Richtlinie. Technical concept or control: Idempotenz (Idempotency). Why it fits: Mach Wiederholungen sicher für unzuverlässige Netzwerke, Warteschlangen, Zahlungsaufrufe und Systeme, die eine Nachricht mindestens einmal liefern können. Do not use it when: `POST` ist nicht immer nicht-idempotent. Ein Idempotenzschlüssel ersetzt auch keine Transaktionen, Autorisierung oder Konfliktprüfungen. 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): Der Standard deckt nur den aufgeführten Umfang ab. Er wählt nicht den visuellen Stil, die Produktentscheidung oder das Vibulary-Beispiel aus. 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.
Diese Anfrage prüfen
Review how Idempotenz (Idempotency) is used now. Definition: Idempotenz bedeutet, dass das erneute Ausführen derselben beabsichtigten Operation denselben Servereffekt hat wie einmaliges Ausführen. Die Antworten müssen nicht identisch sein. 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.