تصميم الأنظمة

الأنظمة اللحظية تحتاج خطة للتعافي

تنقطع الاتصالات وتتكرر الأحداث. صمّم مسار العودة إلى حالة متسقة.

الاتصال ليس مصدر الحقيقة

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

توقع التكرار وتغير الترتيب

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

إعادة الاتصال بخطة واضحة

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

اختبار التعافي كميزة

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

العودة إلى المقالات