Nettverk gjør utfallet usikkert
En forespørsel kan nå serveren og commit vellykket selv når nettleseren aldri mottar svaret. Det er rimelig å prøve på nytt, men uten en stabil forespørselsidentitet kan ikke serveren skille et nytt forsøk fra en ny kommando.
Når det gjelder opprettelse av offentlige lenker, kan denne tvetydigheten føre til dupliserte aliaser, forvirrende oppføringer eller gjentatte bivirkninger.
Én nøkkel representerer én tilsiktet endring
Klienten sender en unik idempotensnøkkel sammen med opprettingsforespørselen. Serveren lagrer resultatet sammen med et fingeravtrykk av inndataene. Gjentatte forespørsler med samme nøkkel og samme inndata gir det opprinnelige resultatet.
Den samme nøkkelen med andre inndata avvises som en konflikt. Dette beskytter både klient og server mot utilsiktet å endre betydningen av en tidligere kommando.
Holdbarhet er viktig i produksjonen
Et idempotent lagringssted i minnet er tilstrekkelig for isolerte tester, men ikke for en produksjonstjeneste med flere instanser. Produksjonsnøkkelen og resultatet må befinne seg innenfor samme varige domeneavgrensning som endringen, med utløpsdato og leietakervirkeområde.
Det samme mønsteret gjelder betalinger, behandling av webhooks, import og jobber der en duplisert effekt ville vært kostbar.