محمود أبوالحسن

مطور ويب شامل

تصميم الرسومات

مطور ووردبريس

مطور لارافيل

مصمم باستخدام فيغما

مستقل

محمود أبوالحسن
محمود أبوالحسن

مطور ويب شامل

تصميم الرسومات

مطور ووردبريس

مطور لارافيل

مصمم باستخدام فيغما

مستقل

أفكار وتجارب تستحق المشاركة

منع تكرار العمليات باستخدام Idempotency

1 دقيقة قراءة تقريبًا
ابدأ القراءة
منع تكرار العمليات باستخدام Idempotency

قد يعيد المستخدم إرسال الطلب لأن الاتصال انقطع بعد تنفيذه. في الحجز أو الدفع، تكرار المحاولة لا ينبغي أن ينشئ عملية ثانية بالخطأ.

الفكرة الأساسية

مفتاح عدم التكرار يربط محاولات العملية المنطقية نفسها بنتيجة محفوظة. يجب ربطه بالحساب وبصمة المدخلات، مع سياسة واضحة لمدة الاحتفاظ ومنع السباق بين طلبين متزامنين.

خطوات عملية

  1. ولّد مفتاحًا للعملية قبل إرسالها واحتفظ به أثناء إعادة المحاولة.
  2. افرض تفرد المفتاح في التخزين بدل الاعتماد على فحص منفصل فقط.
  3. ارفض إعادة استخدام المفتاح بمدخلات مختلفة.

الخوادم وواجهات API — صورة توضيحية

مثال تطبيقي

إذا أرسل التطبيق طلب إنشاء فاتورة ثم انتهت المهلة، يعيد المحاولة بالمفتاح نفسه. يعيد الخادم النتيجة السابقة بدل إنشاء فاتورة جديدة.

خطأ شائع ينبغي تجنبه

تعطيل الزر يحسن الواجهة لكنه لا يمنع التكرار من الشبكة أو الأجهزة الأخرى. الضمان الحقيقي يجب أن يكون في الخادم والتخزين.

للتوسع في الموضوع

التوثيق والمرجع الرسمي

صور توضيحية: الغلاف من Unsplash، الصورة الداخلية من Unsplash. ترخيص الاستخدام.

شارك المقال

شارك هذه الفكرة مع من تهمّه.

لنتحدث عن فكرتك القادمة

لديك سؤال أو فكرة مشروع؟ يسعدني التواصل معك.

اتصل بنا
Dark Mode EN English Buy Me A Coffee Buy Me A Coffee