Idempotency înseamnă că efectuarea unei operații de mai multe ori are același efect ca efectuarea ei o singură dată. Contează pentru că rețelele sunt nefiabile: când un client trimite o cerere și răspunsul nu ajunge niciodată, nu poate spune dacă serverul a procesat-o. Dacă reîncearcă, o operație non-idempotentă ar putea rula de două ori.
Problema
Client ──POST /payments {$100}──▶ Server (percepe $100 ✓)
Client ◀────────X (timeout)────── Server (răspuns pierdut)
Client ──POST /payments {$100}──▶ Server (percepe $100 DIN NOU ✗ → $200!)
, și sunt idempotente în mod natural, așa că reîncercarea lor este sigură. este — exact de aici provin percepțiile duble și comenzile duplicate.
