لو عندك تطبيق فنتك وفيه عملية سحب من المحفظة حاول دائما ما تخليها تتنفذ مباشرة.
الطريقة الصح إنك تخزن العملية أول داخل جدول queue وتخليها تمر بمراحل واضحة في كل خطوة من عمر العملية.
التنفيذ لازم يمر عن طريق queue tool زي Redis مثلاً عشان تضمن تسلسل العمليات وما يصير عندك تضارب أو double execution.
الفكرة هنا إنك ما تتعامل مع العملية كأنها مجرد function تنفذت وانتهت بل كأنها event له دورة حياة كاملة. بهذا الشكل تقدر تتحكم في كل تفصيلة وتتعامل مع أي خطأ أو ظرف يصير في النص بدون ما تتأثر تجربة المستخدم.
على سبيل المثال لو النظام فيه مشكلة المستخدم ما يطلع له خطأ مباشر بالعكس يشوف العملية عنده بالتطبيق قيد المعالجة وتحافظ على تجربة احترافية بدل ما تصدمه برسالة فشل.
لو حساب البنك نفسه ما فيه رصيد كافي وقت تنفيذ العملية ما تضيع العملية لأنها محفوظة في الـ queue وتقدر بعدين تحول المبلغ للحساب وتعيد تنفيذها مرة ثانية.
غير كذا النظام يعطيك فرصة تراجع العمليات قبل ما تتنفذ فعليا لو لاحظت نشاط غريب أو سلوك مريب (Suspicious activity) من مستخدم معين تقدر توقف العملية قبل ما تدخل في السجل المالي.
هذا الأسلوب البسيط في تصميم عمليات السحب يغير كثير في استقرار النظام ومرونته. باختصار لا تنفذ العملية فورا وخليها تمر برحلتها أول داخل الـ queue وبتعرف حرفيًا فائدة الطريقة ذي لما تبدأ تتعامل مع حالات حقيقية ومشاكل إنتاجية.
دائماً تعامل مع الفلوس ككائن حي مش function تُنفذ.
#Fintech
Original source
This content was originally published as a LinkedIn post. Open it in a new tab.