Sadia logo
Client
Sadia

Buy, Scan & Win — منصة تفعيل استهلاكي لعلامة FMCG منذ 1944.

تفعيل علامة استهلاكية يعمل عبر ثلاثة أسطح منفصلة — ويب استهلاكي متجاوب، كشك لوحي في المتجر، وكونسول عمليات العلامة — هُندس كنموذج مجال واحد يُعرَض بثلاث طرق. استيعاب الإيصالات، إزالة التكرار، التنسيق، ومعالجة ذروات الترافيك مبنية كنظام إنتاج واحد، لا ثلاث منتجات منفصلة.

3 أشهر · 3 مهندسينسُلِّم 2024
Sadia — Buy, Scan & Win — منصة تفعيل استهلاكي لعلامة FMCG منذ 1944.
  • 3
    أسطح عرض (مستهلك · كشك · كونسول)
  • 1
    نموذج مجال لجميع العملاء الثلاثة
  • Burst
    معمارية مُعَايَرة لذروات الترافيك
  • Live
    نشر وطني، في المتجر + رقمي
موجز هندسي

المشكلة مُؤطَّرة كهندسة.

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

الانضباط الهندسي هنا هو سلامة البيانات تحت حمل متقطع مع ثلاثة عملاء غير متجانسين يكتبون في نفس المجال. ويب استهلاكي متجاوب يستقبل إرسالات من أي جهاز في أي وقت. لوحي في المتجر يستقبل إرسالات من أرضيات السوبرماركت حيث المشغّل لا يملك طاقم IT ويجب أن تستعيد الجلسة نفسها من التخلي. كونسول عمليات العلامة يستقبل إرسالات من مُنسِّقين يجب أن يتخذوا قرارات ملزمة تحت ضغط زمني.

موقف سيملوب من اليوم الأول: نموذج مجال واحد، مسار كتابة واحد، سجل تدقيق واحد — ثلاثة أهداف عرض، كل واحد هُندس للواقع الفيزيائي حيث يعمل.

ما بنيناه

نظام واحد. ثلاثة أهداف عرض.

سطح إدخال المستهلك — تطبيق صفحة واحدة متجاوب مع layouts خاصة بكل شكل. مبدأ التصميم: CSS المتجاوب يشد نفس الواجهة عبر نقاط التوقف، وهو المعمارية الخطأ عندما تختلف أهداف اللمس وطريقة الإدخال وسياق العرض. نعامل desktop و tablet و mobile كثلاثة أهداف عرض منفصلة تتشارك نفس نموذج النموذج والتحقق وخط أنابيب الإرسال.

سطح اللوحي في المتجر — عميل مُقسَّى للكشك هُندس للعمل غير المراقَب على أرضيات السوبرماركت. حالة جلسة ذاتية الاستعادة بعد انتهاء مهلة الخمول، وضع جذب يمنع فشل الشاشة الميتة، أهداف لمس محددة الحجم للمستهلكين المتعجلين، وهدف نشر ضيق يُلغي فئة الأخطاء التي تأتي من تشغيل برمجيات عامة في سياق كشك.

كونسول العمليات — كونسول جانب العلامة بفصل صارم بين الاستيعاب والمراجعة. الفريق الذي يراجع الإدخالات لا يتشارك أبداً مسار كود مع الفريق الذي يُرسلها. وصول محدد بالدور، سجل تدقيق غير قابل للتغيير لكل قرار، وخط أنابيب تصدير يُنتج manifest السحب مع مسار provenance قابل للدفاع.

مبادئ المعمارية

واعية بالذروات، الصحة أولاً، تدقيق كامل.

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

إزالة تكرار حتمية عند حدود الكتابة. كشف التكرار يعمل عند وقت الإرسال، لا في batch بعد الفعل. Perceptual hashing على صور الإيصالات، hashing هوية مستقر عبر حقول الإرسال، ومفاتيح كتابة idempotent ليكون retry لا يُنشئ أبداً إدخالاً شبحياً.

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

تسليم ثابت واعٍ بالذروات. سطح المستهلك يُسلَّم كأصول ثابتة من شبكة edge لذا لا تلمس ذروة ترافيك إعلان تلفزيوني أبداً بنية التحتية الأصل للرسم الأول. الحالة الديناميكية — الإرسالات، التحقق — تتوسع أفقياً على primitives managed لندفع السعة بالثانية، لا بالساعة.

مشاكل هندسية تستحق التوثيق

ما جعل هذا صعباً، وكيف حلّيناه.

  • 01

    اتساق cross-surface دون تكرار الكود

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

  • 02

    إدخال عدائي على endpoint مفتوح

    endpoint المستهلك عام بالتعريف. الإرسالات المكررة والإدخالات المُولَّدة بآلة وإعادة استخدام الصور ليست حالات حدية — إنها الأساس. الموقف الهندسي دفاعي منذ أول commit.

  • 03

    نشر كشك بدون مهندسين ميدانيين

    الأكشاك تعمل في بيئات retail حيث لا نملك طاقم. المستهلك قد يتخلى عن الشاشة في منتصف إدخال، يسحب الطاقة، أو يمنع الشاشة. البرمجيات يجب أن تستعيد من كل حالة من هذه إلى وضع جذب known-good في ثوانٍ.

  • 04

    مراجعة جانب المشغّل تحت ضغط زمني

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

النتائج

ما عمل في الإنتاج، وما كان قابلاً للتحقق.

  • 01

    ثلاثة أسطح عرض عاملة يوم الإطلاق ضد نفس نموذج المجال، بدون انجراف سلوكي ملحوظ بينها.

  • 02

    كونسول التنسيق أنتج manifest سحب جائزة قابل للتدقيق مع provenance كامل لكل إرسال — قابل للقراءة من قبل فريق العلامة دون تدخل مهندس.

  • 03

    حمل الذروة استُوعب بدون تدخل خادم أصلي. التسليم static-first يعني أن الرسم الأول ليس أبداً مورداً متنازعاً، ومسار الكتابة الديناميكي يتوسع على primitives managed.

  • 04

    الأكشاك استعادت ذاتياً من التخلي بدون دعم ميداني. نموذج النشر يفترض أن البيئة الفيزيائية معادية ويُهندس وفقاً لذلك.

الحزمة التقنية
React متجاوبجوال أصلي (Flutter)document store managedأصول edge-deliveredPerceptual hashingإدارة role-scopedسجل تدقيق غير قابل للتغييرتسليم static-first
الخدمات الهندسية المُطبَّقة
FAQ هندسي

ما يسأله المشغّلون والمشترون التقنيون عن هذا المشروع.

01لماذا تعامل desktop و tablet وkiosk كأهداف عرض منفصلة بدلاً من قاعدة كود متجاوبة واحدة؟+

لأن CSS المتجاوب يشفر افتراض أن نفس الواجهة صحيحة عبر الأجهزة. ليست كذلك. كشك في ممر retail يحتاج timeouts للجلسة، وضع جذب، وأهداف لمس لا مثيل لها على متصفح desktop. نحافظ على نموذج المجال فريداً وأهداف العرض منفصلة.

02كيف يكون نتيجة سحب الجائزة قابلة للدفاع تحت التدقيق؟+

كل انتقال حالة — إرسال، flag تحقق، قرار تنسيق، حدث تصدير — يُضاف إلى سجل تدقيق غير قابل للتغيير مُفهرَس على هوية الإرسال. manifest السحب يُولَّد من هذا السجل، لا من قاعدة البيانات الحية.

03كيف تتعاملون مع الإدخال العدائي دون حجب المستهلكين الشرعيين؟+

كشف التكرار حتمي ويعمل عند حدود الكتابة. rate-limiting مُرسَّى على إشارات متعددة — بصمة الجهاز، hash هوية الإرسال، نمط زمني — ليس IP وحده.

04ما التكلفة الهندسية لاستيعاب ذروة الترافيك؟+

قريبة من الصفر عندما تكون المعمارية صحيحة. التسليم static-first من شبكة edge يجعل الرسم الأول مجانياً. الكتابات الديناميكية تتوسع على primitives managed تُسعَّر بالثانية.

05هل تنتقل نفس المعمارية لفعاليات علامات استهلاكية أخرى؟+

نعم. الشكل الهندسي — استيعاب ثلاث أسطح، مسار كتابة متقطع، تنسيق تدقيق-كامل، حدث إخراج قابل للدفاع — يتكرر عبر الترويجات on-pack والآليات scan-to-redeem وتفعيلات الولاء ومسابقات retail-tied.

تُشغِّل حدثاً يجب أن يصمد تحت التدقيق؟

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