مقالات جيس تك
ما الذي علّمنا إياه بناء متتبّع طائرات عن واجهات API الخارجية
ستة مصادر بيانات لا يمكن الوثوق الكامل بأي منها: أنماط التحقق والتخزين المؤقت والبدائل التي تعلمناها أثناء بناء FlightDetector، وكيف تنطبق على تكامل أنظمة الأعمال.
بنينا مؤخرًا FlightDetector، منصة تتبع طيران لحظية تجمع ستة مصادر مستقلة لبيانات الطيران في صورة حية واحدة للسماء. لا تتفق هذه المصادر دائمًا. بعضها يتوقف دون إنذار، وبعضها يقدّم معلومات خاطئة بثقة. جعلها تعمل كنظام موثوق واحد علّمنا عن تكامل واجهات API الخارجية أكثر مما كان يمكن لأي مشروع عميل أن يعلّمنا، وينطبق كل درس مباشرة على أنظمة الأعمال المخصصة التي نبنيها، من أنظمة CRM إلى مسارات معالجة المدفوعات.
لا تثق أبدًا بمصدر واحد
أخبرتنا قاعدتا بيانات معروفتان لمسارات الطيران بأن رحلة Southwest نفسها تتجه إلى مدينتين مختلفتين، بينما كانت الطائرة تتجه فعليًا إلى مدينة ثالثة. تعيد شركات الطيران استخدام أرقام الرحلات لعدة مقاطع في اليوم، وقد خزّنت كل قاعدة لقطة مختلفة. لم يكن الحل اختيار القاعدة «الأفضل»، بل التحقق: نقارن كل مسار مزعوم بالواقع المقاس، أي مكان الإقلاع الفعلي واتجاه الطيران، ونرفض ما يناقض الأدلة.
المقابل في الأعمال: إذا كان نظام المخزون وبرنامج المحاسبة ومنصة التجارة الإلكترونية يحتفظ كل منها بنسخة من الطلب نفسه، فقد تكون إحداها خاطئة أكثر مما تتوقع. يجب ألا تكتفي التكاملات بنقل البيانات، بل تطابقها مع مصدر مرجعي وتنبّه إلى الاختلافات.
الرجوع إلى الأرشيف أولًا، ثم طلب API
يسمح مصدر بياناتنا التاريخية الرئيسي بـ4,000 طلب يوميًا. يبدو ذلك كثيرًا حتى يبدأ موقع عام بتكرار الأسئلة نفسها. لذلك نخزّن كل إجابة نجلبها بصورة دائمة، ويسجل فهرس التغطية الفترات الزمنية التي دفعنا مقابلها بالفعل. تُجاب الأسئلة المتكررة من القرص خلال أجزاء من الثانية وبتكلفة صفرية. يصبح النظام حرفيًا أقل تكلفة وأسرع كلما طال تشغيله.
تفعل معظم الشركات العكس: تستدعي الواجهة الخارجية في كل مرة وتتخلص من الإجابة. إذا كانت واجهة المورّد تحاسب لكل طلب أو تقيّدك في أسوأ وقت، فإن التصميم الذي يبدأ بالأرشيف قد يكون الفارق بين نظام قابل للنمو وآخر يصطدم بحدود الطلبات في أكثر أسابيعك ازدحامًا. نتناول هذا بتفصيل أكبر في دليلنا لخفض تكاليف API.
افرض ميزانيات API في قاعدة البيانات، لا في ذاكرتك
يسمح اثنان من مصادر بياناتنا البديلة بـ100 و1,000 طلب شهريًا فقط. نفرض هذه الحدود داخل قاعدة البيانات نفسها: عدّاد استخدام بحسب الشهر التقويمي، يُفحص قبل كل استدعاء، مع إيقاف صارم دون الحد الفعلي. ولأن كل إجابة تُحفظ بصورة دائمة، لا ندفع مقابل السؤال نفسه مرتين. تصبح ميزانية الباقة المجانية التي تبدو ضئيلة جدًا قابلة للاستمرار عندما يتذكر النظام.
عند الإخفاق، اختر الصراحة بدل التخمين
عندما تختلف جميع المصادر مع الأدلة المقاسة، يعرض FlightDetector عبارة «الوجهة غير معروفة» بدلًا من إجابة خاطئة واثقة. ثبتت صحة هذا الاختيار أول مرة صوّرنا فيها رحلة يشير مسارها المخزن إلى الشرق بينما كانت الطائرة تتجه غربًا. يتسامح المستخدمون مع نظام يعترف بعدم اليقين، ولا يتسامحون مع نظام يقدّم الخطأ بثقة؛ وكذلك المدققون والمحاسبون والعملاء الذين يقرؤون فاتورة.
ستتعطل كل خدمة تعتمد عليها يومًا ما؛ حدّد البديل قبل ذلك
في منتصف المشروع، بدأ مصدرنا الحي الرئيسي يتأخر عن الاستجابة بصورة متقطعة. ولأن سلسلة البدائل كانت موجودة بالفعل، تحولت الخريطة إلى مصدر ثانوي دون أن يلاحظ الزوار. الدرس ليس أن الانقطاعات تحدث؛ فهذا معروف. الدرس أن البديل يجب أن يُصمَّم ويُختبر ويصبح أمرًا روتينيًا قبل الانقطاع، لأنك لن تصممه بهدوء أثناء حدوثه.
ما الذي يعنيه ذلك لأنظمتك؟
الأنماط نفسها، من التحقق بين المصادر إلى الأرشفة أولًا والميزانيات المفروضة في قاعدة البيانات وحالات الإخفاق الصريحة والبدائل المختبرة، هي ما يجعل تكاملات الأعمال موثوقة: مزامنة CRM تطابق السجلات بدل تكرارها، ومسارات webhooks تتحمل انقطاعات المورّدين، وتقارير يمكن للقيادة الوثوق بها. نبنيها بهذه الطريقة لأننا رأينا نتائج الثقة العمياء بالبيانات. وإذا كنت تقيّم تكاملًا مماثلًا، فإن أداتنا المجانية حاسبة تكلفة ربط واجهات البرمجة تقدّر تكلفة العمل بحسب الأنظمة المعنية ونمط المزامنة المطلوب.
اتخذ الخطوة التالية
اربط أنظمتك بطريقة موثوقة
سواء كان الأمر يتعلق بـCRM أو الفوترة أو واجهة مورّد تتعطل باستمرار، نصمم تكاملات تتحقق من البيانات وتتحمل الانقطاعات وتلتزم بالميزانية.