Idempotency નો અર્થ છે operation ને અનેક વાર કરવાની અસર એક વાર કરવા જેવી જ છે. તે મહત્વનું છે કારણ કે networks અવિશ્વસનીય છે: જ્યારે client request મોકલે અને response ક્યારેય ન આવે, ત્યારે તે કહી શકતું નથી કે server એ તેને process કર્યું કે નહીં. જો તે retry કરે, તો non-idempotent operation બે વાર ચાલી શકે.
સમસ્યા
Client ──POST /payments {$100}──▶ Server ($100 ચાર્જ ✓)
Client ◀────────X (timeout)────── Server (response ખોવાયો)
Client ──POST /payments {$100}──▶ Server ($100 ફરીથી ચાર્જ ✗ → $200!)
, , અને કુદરતી રીતે idempotent છે, તેથી તેમને retry કરવું સલામત છે. — ડુપ્લિકેટ charges અને ડુપ્લિકેટ orders બરાબર અહીંથી આવે છે.
