Idempotency
Idempotenza
Idempotenza significa che eseguire di nuovo la stessa operazione prevista ha lo stesso effetto sul server come farla una sola volta. Le risposte non devono essere identiche.
Un altro esempio
Dopo che un pagamento scade, un acquirente ritenta con la chiave di idempotenza `8f2…` e lo stesso hash della richiesta normalizzata. Il server restituisce il primo addebito invece di addebitare di nuovo. La stessa chiave con un importo diverso viene rifiutata e le chiavi scadono secondo una politica scritta.
Parti principali
- 01Identità dell'operazione
- 02Rilevamento duplicati
- 03Effetto stabile e risultato memorizzato
Usalo quando
Rendi i tentativi sicuri per reti inaffidabili, code, chiamate di pagamento e sistemi che possono consegnare un messaggio almeno una volta.
Non usarlo quando
`POST` non è sempre non-idempotente. Una chiave di idempotenza non sostituisce nemmeno transazioni, autorizzazioni o controlli di conflitto.
Nome usato nel codice
HTTP method semantics and/or scoped idempotency key with request fingerprint Prima di spedire
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 Idempotenza (Idempotency). User context: Dopo che un pagamento scade, un acquirente ritenta con la chiave di idempotenza `8f2…` e lo stesso hash della richiesta normalizzata. Il server restituisce il primo addebito invece di addebitare di nuovo. La stessa chiave con un importo diverso viene rifiutata e le chiavi scadono secondo una politica scritta. Technical concept or control: Idempotenza (Idempotency). Why it fits: Rendi i tentativi sicuri per reti inaffidabili, code, chiamate di pagamento e sistemi che possono consegnare un messaggio almeno una volta. Do not use it when: `POST` non è sempre non-idempotente. Una chiave di idempotenza non sostituisce nemmeno transazioni, autorizzazioni o controlli di conflitto. 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): Lo standard copre solo l'ambito elencato. Non sceglie lo stile visivo, la decisione sul prodotto o l'esempio di vocabolario. 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.
Controlla questa richiesta
Review how Idempotenza (Idempotency) is used now. Definition: Idempotenza significa che eseguire di nuovo la stessa operazione prevista ha lo stesso effetto sul server come farla una sola volta. Le risposte non devono essere identiche. 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.