ملاحظات ميدانية

نواة واحدة وتطبيقات عدة: كيف تعمل منصة مصرفية whitelabel

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

بعبارة أبسط، هذا ادعاء عن موضع الفواصل. كل ما يمس الأموال مشترك ومدقَّق ويُسوَّى مرة واحدة؛ وكل ما يمس العميل يُضبط لكل tenant. الهندسة التي تهم هي إبقاء هذا الخط أمينًا — ترك الواجهة الأمامية تختلف بحرية بينما لا تتفرع النواة التي تقف عليها أبدًا. هذا تشريح لكيفية رسم الخط، ولماذا يتفوق رسمه بـ design tokens على رسمه بتفريع الشيفرة (fork).

ما لا يتغير أبدًا: النواة

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

من كل هذه المكونات يوجد واحد فقط، وهذا هو المقصود. التسوية والمطابقة والامتثال صعبة الإتقان وباهظة الخطأ، فتُبنى مرة واحدة ويرثها كل تطبيق. عندما يؤهّل tenant عميلًا، ينتقل مستوى KYC الذي تقرره النواة مع ذلك العميل إلى اللوحة أيًّا كان التطبيق الذي التقطت شاشاته المستندات. النواة لا تعرف ولا تهتم بما يُسمّى به التطبيق الذي فوقها — ترى حسابات وقيودًا، لا علامات تجارية.

ما يتغير: لغة التصميم، وبنية المعلومات، ومزيج الميزات

كل ما فوق النواة حرّ في التغيّر، على ثلاثة محاور. الأول لغة التصميم: اللون والخط ونصف قطر الزوايا والمسافات والحركة — القواعد البصرية للعلامة. الثاني بنية المعلومات: ما يوضع في الشاشة الرئيسية، وكيف تُسمّى المسارات وتُرتَّب، وأي إجراء يبعد نقرة واحدة وأيها ثلاث. الثالث مزيج الميزات: أي الوحدات مفعّلة أصلًا. يمكن لتطبيق تحويلات رشيق وتطبيق شامل (super-app) كثيف أن يعملا على النواة نفسها دون أن يتشاركا شاشة واحدة.

تستعرض صفحة المنتج /products/pay خمسة اتجاهات مطبَّقة، وهي تُقرأ أفضل بوصفها أمثلة من عدد لا نهائي لا قائمة من خمسة. Halcyon منصة تداول نظيفة — متحفظة وبشاشات قليلة، والصفقة في الواجهة. Lumen تطبيق شامل تتحرك فيه الأموال داخل المحادثة، وتتشارك مدفوعات الدردشة والاشتراكات والعوائد الشاشة الرئيسية. Fern تبدأ بالتحويلات — الدفعات المجمّعة وتحويل العملات القائم على القواعد أولًا. Volt إصدار داكن للعملات المستقرة مع فارز للرواتب وبطاقات للفرق. Meridian متعدد العملات: حساب EUR بجانب USDC، ورصيد سفر بـ GBP، وحساب BTC تُودَع فيه مكافآت البطاقة. خمس علامات، وخمس بنى معلومات، وخمسة مزائج ميزات — ودفتر أستاذ واحد، وKYC واحد، ومعالج بطاقات واحد تحتها جميعًا.

لا يعني ذلك أن المنتج خمسة تطبيقات. الاتجاهات الخمسة مسارات يمكن للخط نفسه أن يسلكها؛ والرقم المهم ليس خمسة، بل عدد الـ tenants الذين تضمّهم. كل واحد منها دليل على أن الواجهة الأمامية قد تختلف حتى في شكل الشاشة الرئيسية بينما لا تلحظ النواة تحتها شيئًا.

النواة هي الجزء الذي لا يحق لك إعادة اختراعه؛ والتطبيق هو الجزء الذي لا يحق لك تقييده. منصة whitelabel هي انضباط إبقاء الجملتين صحيحتين معًا.
— Protocore · هندسة المنصة

لماذا يتفوق التخصيص بالـ tokens على تفريع الشيفرة

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

التخصيص على مستوى الـ tokens يعكس ذلك. هناك قاعدة شيفرة واحدة. العلامة مجموعة قيم — tokens للون والخط ونصف القطر والمسافات؛ وإعداد للمكونات؛ ومجموعة feature flags — تُحَل وقت البناء إلى تطبيق بعلامة محددة. غيّر token واحدًا فتتحرك معه كل شاشة تقرؤه، لأن لا شيء يكتب القيمة ثابتةً في الشيفرة حيث ينبغي أن تُسحب من token. وإصلاح في مسار التحويل يصل إلى كل tenant دفعة واحدة، لأن هناك مسار تحويل واحدًا فقط لإصلاحه. تختلف العلامات في إعداداتها، لا في شيفرتها المصدرية.

موقع نظام التصميم

الـ tokens ليست فكرة فضفاضة؛ إنها مُنتَج مُصدَر. Protocore Design System — /products/pds — يضم 144 design token و889 فئة utility: المفردات التي يُخصَّص بها كل تطبيق. هو داكن أولًا، وقائم على الـ tokens، ونصف القطر فيه صفر افتراضيًا، وتُصدَر المجموعة نفسها للويب و.NET والتطبيقات الأصلية، فاللون المعرَّف مرة واحدة يعني اللون نفسه في شاشة React ولوحة سطح مكتب وتطبيق جوال أصلي. تُصاغ علامة الـ tenant كتجاوزات (overrides) على تلك المفردات، ولهذا فإعادة تصميم تطبيق تغيير في الإعدادات لا إعادة كتابة.

وهذا ما يجعل الواجهة الأمامية حرة فعلًا لا حرة داخل قالب. فلأن لغة التصميم تعيش في tokens وفئات utility لا في أوراق أنماط لمرة واحدة، يستطيع المصمم أن يبتعد بالـ tenant كثيرًا عن النسخة المرجعية — بلوحة ألوانه وخطوطه وكثافته وإيقاعه — دون المساس بالنواة أو تفريع التطبيق. الطلاء يتعمق، لكنه يبقى طلاءً؛ والسباكة تحته مشتركة.

التطبيق إعداد، لا بناء

تنطبق القاعدة نفسها على مزيج الميزات. كل وحدة — مدفوعات الدردشة، والعوائد، والعملات المشفرة، والبطاقات، والاشتراكات، وبطاقات الفرق، والإحالات — مفتاح يُضبط لكل tenant، ويمكن طرح الـ flag لشريحة من المستخدمين قبل تعميمه. ويبدّلها المشغّلون من لوحة إعدادات لا من عملية نشر. فالفرق بين تطبيق تحويلات بسيط وتطبيق شامل كامل ليس مشروعين؛ بل إعدادان لمشروع واحد. والتطبيق المرجعي الذي ينطلق منه كل tenant نسخة محايدة بعلامة Protocore تضم القائمة كاملة — وكل whitelabel هو تلك النسخة بعد تجاوز الـ tokens وتشغيل الوحدات أو إيقافها.

الحدّ بصراحة

نواة واحدة وتطبيقات عدة لا تستحق هذه الآلية إلا حين تكون لديك تطبيقات كثيرة فعلًا — أو تطبيق واحد تنوي تغيير مظهره وترتيبه ونطاقه مع الزمن دون إعادة بناء البنك في كل مرة. إن كنت تطلق تطبيقًا واحدًا ثابتًا لن يرتدي علامة ثانية، فلا تحتاج إلى منصة whitelabel؛ تحتاج إلى تطبيق. تثبت المنصة جدواها في الحالة التي بُنيت لها: منصة تُقيم منتجات مصرفية بعلامات مختلفة tenant بعد tenant، كلٌّ منها واضح الهوية، ولا شيء منها تفريع. التشريح الكامل — الاتجاهات الخمسة والتطبيق المرجعي ولوحة المشغّل خلفها — في /products/pay، ونظام التصميم تحتها في /products/pds.

لديك نظام تريد بناءه؟

أخبرنا بالمشكلة، ونعود إليك بهندسة معمارية وخطة.