Idempotency का मतलब है कि एक operation को कई बार करना उतना ही प्रभाव डालता है जितना एक बार करना। यह मायने रखता है क्योंकि networks अविश्वसनीय हैं: जब एक client एक request भेजता है और response कभी नहीं आता, तो वह नहीं बता सकता कि server ने उसे process किया या नहीं। अगर वह retry करता है, तो एक non-idempotent operation दो बार चल सकता है।
समस्या
Client ──POST /payments {$100}──▶ Server (charges $100 ✓)
Client ◀────────X (timeout)────── Server (response lost)
Client ──POST /payments {$100}──▶ Server (charges $100 AGAIN ✗ → $200!)
, , और स्वाभाविक रूप से idempotent हैं, इसलिए उन्हें retry करना सुरक्षित है। है — duplicate charges और duplicate orders ठीक यहीं से आते हैं।
