almessadi.
العودة إلى الفهرس

تحتاج واجهات برمجة التطبيقات المالية إلى النسخ المتطابقة قبل الحاجة إلى المحاولات المتقدمة_

في تدفقات الدفع والدفتر، تكون المحاولات أمرًا طبيعيًا. النسخ المتطابقة هو ما يمنع تلك المحاولات من التحول إلى حركة أموال مكررة.

التمويل هو أحد الأماكن الأكثر وضوحًا حيث يتعين على تصميم واجهات برمجة التطبيقات أن يفترض أن الشبكة غير موثوقة. يعيد المستخدمون المحاولة. يعيد عملاء الهواتف المحمولة الاتصال. تنتهي مهلات البوابات. تعيد العمال الخلفية تشغيل الرسائل.

إذا لم يتمكن الخادم من التعرف على طلب منطقي مطابق وإرجاع نفس النتيجة بأمان، فإن النظام غير دفاعي بما يكفي لحركة الأموال.

كيف يبدو عقد النسخ المتطابق

يتضمن طلب واجهة برمجة التطبيقات الشائعة مفتاح النسخ المتطابق:

POST /payments
Idempotency-Key: 8b7b1b1c-8c3d-4ff0-a87a-5a148f7d4d4e

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

هذه هي النقطة المعمارية الهامة: النسخ المتطابق ليس حيلة لإعادة المحاولة. إنه عقد على جانب الخادم.

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

لماذا هذا الأمر أكثر أهمية من منطق إعادة المحاولة

تكون المحاولات أمرًا طبيعيًا في الأنظمة الموزعة. حركة الأموال المكررة ليست كذلك.

بدون النسخ المتطابق، يمكن أن تخلق المحاولات:

  • رسوم مكررة
  • إدخالات دفتر مكررة
  • تسويات غير متسقة في الأسفل

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

قاعدة أفضل

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

مزيد من القراءة