Le reti rendono i risultati incerti

Una richiesta può raggiungere il server ed essere confermata con successo anche quando il browser non riceve mai la risposta. Un nuovo tentativo è ragionevole, ma senza un'identità di richiesta stabile il server non può distinguere un nuovo tentativo da un nuovo comando.

Per la creazione di collegamenti pubblici, tale ambiguità può produrre alias duplicati, record confusi o effetti collaterali ripetuti.

Una chiave rappresenta una mutazione prevista

Il client invia una chiave di idempotenza univoca con la richiesta di creazione. Il server memorizza il risultato insieme all'impronta digitale dell'input. La ripetizione dello stesso tasto e input restituisce il risultato originale.

L'utilizzo della stessa chiave con input diversi viene rifiutato come conflitto. Ciò protegge sia il client che il server dalla modifica accidentale del significato di un comando precedente.

La durabilità è importante nella produzione

Un archivio di idempotenza in memoria è sufficiente per test isolati, non per un servizio di produzione a più istanze. La chiave di produzione e il risultato devono trovarsi nello stesso confine di dominio durevole della mutazione, con scadenza e ambito tenant.

Lo stesso modello si applica ai pagamenti, all'elaborazione dei webhook, alle importazioni e ai lavori in cui un effetto duplicato sarebbe costoso.

API per sviluppatori · Accesso attuale e limiti