شو عبالك؟
أربعة تطبيقات، طلب واحد، حقيقة واحدة
سوق توصيل في الضفة الغربية: الزبون يطلب من مطاعم ومتاجر منطقته، وصاحب المتجر يدير قائمته وطلباته الواردة، والسائق يلتقط الطلب وينفّذه — ثلاثة تطبيقات موبايل ولوحة تشغيل تتناسق لحظياً عبر واجهة برمجة واحدة.
التحدي
الصعوبة ليست في أي تطبيق بمفرده. الصعوبة أن أربعة عملاء وواجهة برمجة واحدة يجب أن يتفقوا على حالة الطلب في كل لحظة، فوق اتصالات موبايل غير موثوقة، دون أن يرى شخصان حقيقتين مختلفتين.
الحل الذي قدّمناه
انتقالات حالة الطلب تُتحقَّق على الخادم مقابل خريطة انتقالات مسموحة صريحة، فلا يستطيع سائق أن يعلّم طلباً بأنه سُلِّم ولم يُستلم أصلاً. ونموذج هوية واحد قائم على الأدوار يخدم العملاء الأربعة بدل أربعة أنظمة مصادقة. والحالة اللحظية تنتقل عبر WebSockets ما دام التطبيق مفتوحاً؛ أما الإشعارات فوظيفتها إعادة المستخدم فقط، لا أن تكون مصدر الحقيقة.
النتيجة
مستودع واحد تتدفّق فيه الأنواع من مخطط قاعدة البيانات إلى كل عميل، ولوحة تشغيل مبنية لمن يدير العملية فعلاً — مراقبة طلبات لحظية، واعتماد متاجر، ومناطق وعمولات وتقارير مالية.