للمطوّرين: خطافات ويب موثوقة ومفاتيح API تتبدّل من دون توقّف
تميل عمليات التكامل إلى الفشل عندما يتعطّل جهاز الاستقبال أو عندما يجب تغيير بيانات اعتماد. خطافات الويب في Essence تنتظر وتعيد الإرسال، وأسرارها ومفاتيحها تتبدّل مع فترة تداخل، فيصبح كلا الأمرين عملًا مخطّطًا له.
يتعطّل خادم الاستقبال لديك أثناء إصدار ويفوته ساعة من الأحداث. ويجب تغيير سرّ توقيع، ويتعيّن على فريقين الاتفاق على الدقيقة المحدّدة لتبديله. لا يُعدّ أيّ منهما كارثة، لكن كليهما يميل إلى الوقوع خارج ساعات العمل.
تتعامل Essence مع كليهما من جهة الإرسال. خطافات الويب لديها تنتظر نقطة النهاية لديك ويمكنها إعادة إرسال ما فاتها، وأسرارها ومفاتيح API لديها تتغيّر مع فترة تسليم. يصلح مطوّروك الأمور عندما يناسبهم ذلك، لا عندما تجبرهم الساعة.
عندما تكون نقطة النهاية لديك متعطّلة
عندما يحدث شيء تهتمّ به أنظمتك، ترسل Essence خطاف ويب. وإذا أرجعت نقطة النهاية لديك أخطاء، فلا يُسقَط التسليم. تعيد السياسة الافتراضية المحاولة خمس مرات، بعد دقيقة واحدة، و5 دقائق، و30 دقيقة، وساعتين، و12 ساعة. هذا التوزيع يغطي إعادة تشغيل سريعة وليلة سيئة طويلة على حدّ سواء، من دون إغراق خادم يعاني أصلًا بالطلبات.
إذا فشلت كل المحاولات، يُركَن التسليم بدلًا من إعادة محاولته إلى الأبد. ويحتفظ التسليم المركون بحمولته، وعدد المحاولات، وآخر استجابة أعطتها نقطة النهاية لديك.
منذ إصدارنا لشهر أغسطس، يمكن إرسال التسليمات المركونة مرة أخرى. بمجرد أن تصبح نقطة النهاية لديك سليمة، تطلب إعادة إرسالها. تُسجَّل إعادة الإرسال كتسليم جديد يشير إلى التسليم الأصلي، ويحتفظ الأصلي بحالته كمركون، فيبقى السجل صادقًا بعد الحدث.
وطلب إعادة الإرسال آمن للتكرار أيضًا. إذا انتهت مهلة طلبك وأرسلته مرة أخرى، فلا تضع Essence في قائمة الانتظار إعادة إرسال ثانية للتسليم نفسه. اجمع ذلك مع جهاز استقبال يتجاهل الأحداث التي سبق أن عالجها، فيصبح التعطّل من جهتك مهمة قصيرة: أصلح نقطة النهاية، وأعد الإرسال، وتابع.
تغيير سرّ التوقيع من دون انتقال مفاجئ
كل حمولة خطاف ويب موقّعة بخوارزمية HMAC-SHA256 باستخدام سرّ مشترك مع جهتك، ويتحقّق جهاز الاستقبال لديك من التوقيع قبل أن يثق بالمحتوى.
يجب أن تتغيّر الأسرار من وقت لآخر: عندما يغادر شخص ما، أو عندما يُحتمل أن يكون أحدها قد انكشف، أو وفق جدول زمني. والجزء المحرج كان دائمًا هو التبديل. إذا غيّر المُرسِل أولًا، يرفض جهاز الاستقبال لديك أحداثًا صحيحة. وإذا غيّرت أنت أولًا، فإنك ترفضها على أي حال.
التبديل المتداخل جزء من خدمة خطافات الويب منذ يونيو 2026. عندما تبدّل السرّ، تتلقّى السرّ الجديد مرة واحدة. ويُخزَّن مشفّرًا ولا يُعرَض مرة أخرى أبدًا. ويظلّ السرّ السابق صالحًا حتى وقت محدّد، تعطيك إياه الاستجابة: 24 ساعة افتراضيًا، وحتى 7 أيام إذا طلبت ذلك. خلال تلك الفترة ينتج كلا السرّين توقيعات صالحة، فتنشر السرّ الجديد في ساعة معقولة. وبعدها يتوقّف السرّ القديم عن العمل.
مفاتيح API مع فترة تسليم
في إصدارنا لشهر سبتمبر وصلت الفكرة نفسها إلى مفاتيح API، وهي بيانات الاعتماد التي تقدّمها أنظمتك عندما تستدعي Essence.
عندما تبدّل مفتاحًا، يمكنك طلب فترة تداخل تصل إلى 24 ساعة، يُقبَل خلالها المفتاح القديم والجديد كلاهما. وإذا بدّلت من دون تداخل، يُبطَل المفتاح القديم فورًا. وهذا هو المسار لليوم الذي يتسرّب فيه مفتاح وتريد إيقافه الآن.
ثلاث قواعد تحافظ على نزاهة التداخل:
- لا يمكن تبديل مفتاح هو أصلًا في فترة تداخله مرة أخرى. بل تبدّل المفتاح الذي خلفه، فلا يستطيع أحد إبقاء مفتاح متقاعد حيًّا عبر تبديله مرارًا وتكرارًا.
- يُتحقَّق من نهاية فترة التداخل في كل مرة يُستخدَم فيها المفتاح، كما يحدث مع انتهاء الصلاحية. يتوقّف المفتاح القديم في موعده لأن كل طلب يتحقّق منه، لا لأن مهمة في الخلفية صادف أنها عملت.
- يحمل المفتاح الجديد الصلاحيات نفسها التي يحملها القديم، فيحتفظ التكامل بوصوله في اللحظة التي يُعاد فيها إصدار مفتاحه.
وأعطى الإصدار نفسه مفاتيح API أيضًا حقلًا للجهة التي تنتمي إليها، بحيث يمكن ربط المفتاح بجهة بدلًا من ربطه فقط بالشخص الذي أنشأه.
ما الذي يتغيّر لفريقك
تصبح ساعة الأحداث الفائتة عملية إعادة إرسال. ويصبح تغيير سرّ أو مفتاح عملية نشر لها بداية واضحة ونهاية واضحة، مجدولة في يوم عمل. إذا كان فريقك يخطّط لتكامل مع Essence، فيسعدنا أن نشرح التفاصيل لمطوّريك.
تاريخ النشر 22 أكتوبر 2026
