نقطة تقنية بسيطة لكنها جوهرية جدًا لأي شخص يشتغل على نظام فنتك يتكامل مع أنظمة البنوك (خصوصًا حوالات السحب للحسابات البنكية الخارجية):
أحيانًا لما ترسل حوالة من خلال API بنك، يجيك timeout أو ما يوصلك response واضح.
من الغلط أنك تعيد المحاولة (retry) مباشرة بدون ما تتأكد إذا العملية تمت أو لا.
لأنه ممكن البنك استقبل الحوالة ونفذها فعلاً… بس أنت ما وصلك الرد، فتعيدها مرة ثانية، وتتحول من عملية واحدة إلى عمليتين… والضرر يبدأ!
المفروض راجع id العملية في الطرف الآخر (إن توفر).
كل عملية حوالة بنكية لازم تعتبرها غير idempotent إلا إذا البنك يضمن العكس برسميًا.
هذه التفاصيل الصغيرة هي اللي تفرق بين نظام فنتك مستقر ونظام يدخل عملاءه في مشاكل مالية بدون ما يحس.
Original source
This content was originally published as a LinkedIn post. Open it in a new tab.
M
Author
Mohammed Abdo
Software engineer specializing in FinTech. I write about engineering, compliance, and building products.
More about me →