Idempotency মানে একটি operation একাধিকবার করা একবার করার মতোই একই প্রভাব ফেলে। এটি গুরুত্বপূর্ণ কারণ network অনির্ভরযোগ্য: যখন একটি 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 করা নিরাপদ। — ঠিক এখান থেকেই ডুপ্লিকেট charge আর ডুপ্লিকেট order আসে।
