عقود البيانات بين مراحل خط الأنابيب: لماذا تتوقف الأخطاء عند الوصلة
كيف ترفض كل مرحلة في خط أنابيب Rexfin البيانات المُشوَّهة القادمة من المرحلة السابقة، بحيث يُلتقط الخطأ عند الحدّ الفاصل بدل أن يصل إلى نموذجك.
بقلم The Rexfin team
معظم خطوط الأنابيب تفشل بصمت في المنتصف. تُنتج مرحلة ما شيئًا غير سليم قليلًا: حقلًا بالشكل الخطأ، أو قيمة تجاوزت الحد، أو تطابقًا غامضًا، وتتعامل المرحلة التالية معه على أي حال بأفضل ما تستطيع، لأن التوقّف يبدو أسوأ من المتابعة بتخمين. وبحلول اللحظة التي يظهر فيها خطأ ما، تكون ثلاث مراحل أخرى قد بنت فوق ذلك المُدخَل الفاسد، ولا يستطيع أحد أن يحدّد بدقة أين انحرف المسار. أما خط أنابيب Rexfin فيقوم على افتراض مختلف: كل تسليم بين مرحلتين هو عقد، والمرحلة المستقبِلة مسموح لها، بل متوقَّع منها، أن ترفض أي شيء لا يفي بشروط ذلك العقد.
الحزمة هي العقد، لا مجرد أمل
لا يسلّم الإدماج مخرجاته إلى المرحلة التالية كمجموعة متناثرة من الأرقام المستخرجة. بل يجمع كل ما أنتجته القائمة المالية: دفتر الحقائق، والمقاطع المُستشهَد بها، والصفحات المرجعية، وشبكة العلاقات التي تربط الأرقام ببعضها، وتقريرًا عن كيفية تقييم بوّابة جودة الاستخراج لتلك القائمة، وبيانًا (manifest) يصف محتوى الحزمة، كل ذلك في حزمة واحدة مرتبطة بمحتواها (content-addressed). وقبل أن تنتقل هذه الحزمة إلى أي مكان، يتحقق الإدماج من مطابقتها لمخطط لا يملكه هو نفسه. فإن لم تطابق الحزمة ذلك المخطط، يرفض الإدماج إصدارها. فهو لا يعيد تشكيل البيانات بصمت لتلائم المخطط، ولا يمرّر حزمة “قريبة بما يكفي” على أمل أن تتولى المرحلة التالية إصلاحها. والرفض عند هذه النقطة يعني قائمة مالية تحتاج نظرة إضافية، لا رقمًا خاطئًا يظهر بعد ثلاث مراحل دون أي طريقة لتتبّعه إلى مصدره.
الطرف الآخر يتحقق أيضًا
المرحلة التي تستقبل الحزمة لا تُسلّم بمطابقتها لمجرد أن المُرسِل زعم أنه تحقّق منها. فهي تُشغّل عند الحدّ الفاصل بوّابة جودة بيانات تصريحية خاصة بها، على نفس شكل العقد، قبل أن يُعامَل أي شيء في الحزمة كبيانات جديدة. فحصان مستقلان لنفس عملية التسليم، واحد على كل جانب من الوصلة، هذا ما يبدو عليه عقد مُنفَّذ فعليًا لا عقد مُفتَرَض فقط؛ فإن سمح يومًا خللٌ في مُدقِّق الإدماج نفسه بمرور شيء ما لم يكن ينبغي أن يمرّ، يكون الجانب المستقبِل هو خط الدفاع الثاني، لا مجرد إجراء شكلي.
بعض ما يعبر تلك الوصلة يُرفض بسبب الشكل: حقل رقمي ليس في الواقع رقمًا محدودًا (finite)، أو قيمة تجاوزت أي رقم يمكن أن تُبلغ عنه قائمة مالية حقيقية. وبعضه يُرفض بسبب الغموض: مرساة استشهاد يمكن منطقيًا أن تشير إلى أكثر من رقم واحد تُرفَض بدل أن تُحسَم باختيار أحدها والمراهنة عليه. أما البنى التكرارية التي تشير إلى بعضها فتُتَتبَّع حتى عمق محدود لا إلى ما لا نهاية، حتى لا تتحوّل بنية مشوَّهة أو مصمَّمة عمدًا للإضرار إلى تعليق كامل لخطوة التحقق.
العقود لا تخص الشكل وحده
قد يكون السجل سليم الشكل تمامًا ومع ذلك لا يستحق الثقة. فقبل أن يُسمح لرقم مستخرج بأن يصبح قابلًا للاستشهاد به، أي قبل أن يستطيع أي شخص الإشارة إليه كحقيقة، يجب أن تتفق عدة محركات استخراج (backends) مستقلة على ما يقوله ذلك الرقم. فقراءة محرك واحد لصفحة ما، مهما كانت مخرجاته نظيفة، لا تكفي وحدها؛ والاتفاق عبر عدة محركات جزء من العقد الذي يجب أن يستوفيه الرقم قبل أن ينتقل من حالة “مستخرَج” إلى حالة “قابل للاستخدام”، وهو المعيار نفسه الذي تبني عليه عملية التحقق حين تفحص ما إذا كانت المجاميع متطابقة فعلًا.
المنطق نفسه يفصل الأرقام المبدئية عن الأرقام الفعلية. فالموازنة التقديرية أو الخطة المُرسَلة إلى Rexfin تسلك مسارها الخاص، بتخزين خاص ومسار كتابة خاص، معزولة بنيويًا عن الذرّات (atoms) التي تعتمد عليها عملية التحقق والاستشهاد. وأي شيء في تلك الإرسالية يحاول الادّعاء بأنه فعلي بالفعل، أو مُستشهَد به بالفعل، أو مدقَّق بالفعل، يُرفض رفضًا تامًا، ومستوى الضمان الملحق بالخطة يختمه النظام نفسه، لا ما يدّعيه المُرسِل. فلا يمكن لتوقّع مستقبلي أن يتنكّر في هيئة رقم مُقدَّم رسميًا لمجرد أنه يطلب أن يُعامَل كذلك.
لماذا الرفض أفضل من الترقيع
المرحلة التي ترفض المُدخَل المشوَّه بدل ترقيعه تفشل أيضًا بطريقة يمكن التعافي منها، وهو الانضباط نفسه القائم عليه تعامل المنصة مع الموثوقية والتعافي من الكوارث: معرفة ما تعطّل بالضبط، وعزله، وترك كل شيء آخر يستمر في العمل. عقود البيانات بين المراحل هي ما يجعل ذلك ممكنًا على مستوى كل وصلة على حدة، لا على مستوى النظام ككل فقط.
لمن هذا موجَّه
لكل من واجه تقريرًا نهائيًا خاطئًا وأمضى بعد ظهيرة كاملًا يتتبّع رقمًا خاطئًا عبر ثلاثة أنظمة قبل أن يكتشف أين حدث الخطأ فعلًا. خط أنابيب Rexfin مبني بحيث يُرفض السجل المشوَّه عند أول حدّ يعبره، مع سبب واضح لذلك الرفض، بدل أن ينتشر بصمت حتى يظهر كرقم خاطئ في صفحة كنت تثق بها. اطّلع على كيفية تناغم هذه الوصلات في نظرة عامة على المحور، أو احجز عرضًا توضيحيًا لمشاهدة مخالفة عقد يُلتقَط مباشرة.
جزء من داخل منصّة Rexfin: كيف تعمل آلية الثقة