مادة تحريرية
تحليل

Idempotency في APIs: لماذا يجب ألا يكرر Retry عملية الدفع أو الإنشاء؟

الشبكة قد تفشل بعد وصول الطلب وقبل وصول الاستجابة؛ إذا أعاد العميل POST بلا آلية idempotency فقد ينفذ الخادم العملية مرتين.

لماذا يهم؟
1مصادر موثقة
2محاور
  • HTTP يعرف بعض methods مثل GET وPUT وDELETE كـidempotent semantics في المعيار.
  • عمليات POST المخصصة قد تحتاج idempotency key على مستوى التطبيق.
  • المفتاح يجب أن يرتبط بنتيجة العملية ومدخلاتها ضمن فترة وسياسة واضحة.

سيناريو الفشل الصعب

المستخدم يرسل عملية، الخادم ينفذها، ثم ينقطع الاتصال قبل الاستجابة. العميل لا يعرف هل حدث التنفيذ، فيعيد الطلب؛ هنا تظهر الحاجة إلى اكتشاف التكرار.

كيف تصمم الحل؟

احفظ مفتاحًا فريدًا مع نتيجة العملية، وارفض استخدام نفس المفتاح بمدخلات مختلفة. كذلك عالج concurrency حتى لا ينفذ طلبان بنفس المفتاح في اللحظة نفسها.

بعد هذه المادة

تابع القراءة

من نفس القسم04
  1. 02
  2. 03
  3. 04
اختيار القراء

الأكثر قراءة

الترتيب الكامل
  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
يتجدد مع النشر

أحدث المواد

  1. 01
  2. 02
  3. 03
  4. 04
  5. 05
  6. 06
شارك رأيك

التعليقات

0

كن أول من يكتب تعليقًا.