التحدي بل كان مجموعة من أنظمة البنية التحتية التي يجب أن تعمل بتناغم: بيانات السوق المباشرة، وتنفيذ الألعاب، والشؤون المالية، والمدفوعات، والإحالات بالعمولة، وعمليات الإدارة، وتجربة لعب موجهة للاعبين في الوقت الفعلي.
لا يمكن التعامل مع بيانات السوق المباشرة كتغذية خام
في ظروف السوق المتقلبة، قد تنتج تغذيات الفوركس والعملات المشفرة الخام مئات التحديثات السعرية في الثانية. ويصبح النظام الذي يستجيب لكل تحديث غير مستقر تحت الحمل، نتيجة تكرار دورات المحرك، وحالات التسابق، واستهلاك الموارد تبعاً لتقلب السوق بدلاً من حمل المنصة.
كان لا بد من هندسة طبقة الأسعار كبنية تحتية محكومة المعدل، لا مجرد توصيلها بمزود خارجي.
كان على ثلاثة محركات ألعاب مستقلة أن تعمل معاً
تطلبت كل من Pools وPredictions وDreams آليات وشروط فوز وقواعد أعمال ومسارات استكشاف ولوحات صدارة وشاشات لعب مباشر ومنطق تنفيذ مختلفاً.
ومع ذلك، كان على الألعاب الثلاث مشاركة حساب لاعب واحد ومحفظة واحدة ونظام تصنيف واحد ومصدر أسعار مباشر واحد، من دون ربط وحدات الألعاب بعضها ببعض.
كان يجب أن يكون تنفيذ الصفقات قائماً على نبضات زمنية وآمناً في حالات التزامن
يمكن لكل نبضة سعر أن تفعّل الأوامر المعلقة، وإغلاقات وقف الخسارة وجني الأرباح، وانتهاء الصفقات، والتسوية، وتحديثات حالة اللعبة، والإشعارات الخاصة بكل مستخدم.
إذا عملت عدة دورات تنفيذ في الوقت نفسه، تصبح حالة الصفقة غير آمنة. لذلك احتاج المحرك إلى دورات مرتبة، وحماية بقفل semaphore، وانتقالات حتمية للحالة عبر كل لعبة نشطة.
كان يجب تنفيذ حركة الأموال كمعاملة موحدة
تشمل مشتريات الخطط Stripe أو NowPayments، والتحقق من الرموز الترويجية، والخصومات، والإيداع في المحافظ، وإضافة المكافآت، وربط الخطط، وتسجيل استخدام العروض، وإسناد الإحالات بالعمولة.
لا يمكن أن تنجح هذه الخطوات جزئياً. احتاجت المنصة إلى مسار تأكيد يثبت جميع الآثار المالية معاً أو يتراجع عنها بالكامل وبصورة سليمة.
كان للتوصيل في الوقت الفعلي حدود خصوصية مختلفة
تصل الأسعار إلى كل لاعب متصل، لكن أحداث دورة حياة الصفقة تخص فقط اللاعب الذي يملكها.
كان على طبقة التوصيل بث حالة الأسعار العامة، مع توجيه أحداث التنفيذ والإغلاق والانتهاء بصورة خاصة إلى كل مستخدم معني.
كان يجب فصل واجهتي الإدارة والشؤون المالية فصلاً كاملاً
احتاجت المنصة إلى إدارة المستخدمين، ووصول قائم على الأدوار، وإدارة الخطط والعروض الترويجية، وضوابط الألعاب، وعمليات السحب، والإشراف على الإحالات، والتقارير المالية، وسجل البريد الإلكتروني، والإعدادات.
وكان يجب فصل طبقتي API للتطبيق والإدارة على مستوى التوجيه، مع سياسات أمان ومسارات تشغيل مصممة لمنتج يرتبط بالقطاع المالي.
ما بنيناهبنية تحتية مصممة لغرضها، لا قائمة خصائص.
لكل مكوّن مسؤولية محددة وحدود واضحة وواجهة معرّفة مع الأنظمة المحيطة به.