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