الـ Idempotency تعني أن أداء عملية عدة مرات له الأثر نفسه لأدائها مرة واحدة. وهي مهمة لأن الشبكات غير موثوقة: حين يرسل العميل طلبًا ولا تصل الاستجابة أبدًا، لا يستطيع الجزم بأن الخادم عالجه. وإذا أعاد المحاولة، فقد تُنفَّذ عملية غير idempotent مرتين.
المشكلة
Client ──POST /payments {$100}──▶ Server (charges $100 ✓)
Client ◀────────X (timeout)────── Server (response lost)
Client ──POST /payments {$100}──▶ Server (charges $100 AGAIN ✗ → $200!)
الـ و و idempotent بطبيعتها، فإعادة محاولتها آمنة. أمّا فـ كذلك — ومن هنا بالضبط تأتي عمليات الخصم المكرّرة والطلبات المكرّرة.
