Idempotency berarti melakukan sebuah operasi berkali-kali memiliki efek yang sama dengan melakukannya sekali. Ini penting karena jaringan tidak dapat diandalkan: ketika client mengirim sebuah request dan response tidak pernah tiba, ia tidak bisa tahu apakah server telah memprosesnya. Jika ia retry, operasi non-idempotent mungkin berjalan dua kali.
Masalahnya
Client ──POST /payments {$100}──▶ Server (charges $100 ✓)
Client ◀────────X (timeout)────── Server (response lost)
Client ──POST /payments {$100}──▶ Server (charges $100 AGAIN ✗ → $200!)
, , dan secara alami idempotent, sehingga me-retry mereka aman. — inilah persis dari mana charge duplikat dan order duplikat berasal.
