Idempotency என்பது ஒரு operation-ஐ பல முறை செய்வது ஒரு முறை செய்வதன் அதே விளைவைக் கொண்டிருப்பது. நெட்வொர்க்குகள் நம்பகமற்றவை என்பதால் இது முக்கியம்: ஒரு client ஒரு request அனுப்பி response ஒருபோதும் வராதபோது, server அதைச் செயலாக்கியதா என்று அதனால் சொல்ல முடியாது. அது 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 வரும் இடம்.
