Idempotentność (idempotency) oznacza, że wykonanie operacji wiele razy ma ten sam efekt co wykonanie jej raz. Ma znaczenie, bo sieci są zawodne: gdy klient wysyła żądanie, a odpowiedź nigdy nie dociera, nie może stwierdzić, czy serwer je przetworzył. Jeśli ponowi, operacja nieidempotentna może wykonać się dwa razy.
Problem
Client ──POST /payments {$100}──▶ Server (charges $100 ✓)
Client ◀────────X (timeout)────── Server (response lost)
Client ──POST /payments {$100}──▶ Server (charges $100 AGAIN ✗ → $200!)
, i są naturalnie idempotentne, więc ich ponawianie jest bezpieczne. jest — dokładnie stąd biorą się zdublowane obciążenia i zdublowane zamówienia.
