تخطي إلى المحتوى الرئيسي
Clinford Jordano Valencia
كل المشاريع
منصةويبالجوال

منصة قياس عن بُعد للواجهة الأمامية في الزمن الحقيقي

حزمة SDK للواجهة الأمامية بأنواع محددة وخط أحداث منحا تدفقات المستخدمين متعددة الخطوات رؤيةً فورية، وخفّضا زمن اكتشاف الأعطال من أيام إلى دقائق.

التقنيات
TypeScript · BFF · Event streaming · Columnar storage · Dashboards

المشكلة

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

النهج

  • حزمة SDK صغيرة بأنواع محددة. جامع TypeScript واحد يجمع بيانات إجراءات المستخدم نفسها على كل شاشة ومنصة، فيعني الحدث الشيء نفسه في كل مكان.
  • تحديد المعدل مع صمام أمان. تجمّع الحزمة الأحداث في دفعات وترسلها عند انتهاء مؤقّت قصير أو بلوغ حدّ للحجم، أيهما أسبق. طلب واحد لكل نقرة يستنزف خيوط الشبكة في المتصفح؛ وإبقاء الأحداث مدة أطول يخاطر بفقدانها عند إغلاق التبويب، لذلك يُستخدم navigator.sendBeacon عند مغادرة الصفحة.
  • BFF يتحقق من البيانات. تصل الدفعات إلى Backend for Frontend الذي يتحقق من المخطط مقابل تعريفات TypeScript، ويفحص منطقية الطوابع الزمنية، ويزيل الحقول غير المتوقعة والبيانات الشخصية، ويضيف بيانات وصفية للجلسة. وقد كشفت مقارنة حكم الخلفية بما عرضته الواجهة عن حالات عدم تطابق بين الحالتين.
  • خط بث متدفق إلى تخزين عمودي. يمتص البث ذروات الحركة، ويجيب التخزين العمودي عن عمليات التجميع على مجموعات أحداث ضخمة عالية التنوع في أجزاء من الثانية، بينما تزحف المخازن الصفّية.
  • معالجة الفشل بهدوء. إذا توقف الخط، تحتفظ الحزمة بمخزن مؤقت صغير محليًا ويوقف قاطع دائرة سلبي الإرسال. ولا ترسل ping إلى الخادم للتحقق من سلامته، بل تنتظر الاستجابة الناجحة التالية.

النتيجة

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