تخطَّ إلى المحتوى

كيف يعمل التكامل

نظرة عامة على البنية

يوفر نظام التكامل طريقتين لمزامنة بيانات متجرك مع أنظمة خارجية مثل Odoo:

  • سحب (Pull): نظامك يطلب البيانات من واجهة REST API
  • دفع (Push): دُرج يرسل إشعارات فورية عبر Webhooks
Architecture Overview

المكونات الرئيسية

المكونالوصف
REST APIapi.durj.ly/api/v1/* — جلب المنتجات والطلبات والعملاء والمخزون
Event Logكل تغيير في البيانات يُسجل في قاعدة البيانات
Event Pollerيفحص سجل الأحداث كل 3 ثوانٍ ويضيفها لقائمة الانتظار
BullMQ Queueقائمة انتظار Redis لضمان تسليم موثوق
Webhook Dispatcherيوقّع الحمولة بـ HMAC-SHA256 ويرسلها لنقطة النهاية

مسار تسليم Webhook

عند حدوث حدث في متجرك (طلب جديد، تحديث منتج…)، هذا ما يحدث:

Webhook Flow

سياسة إعادة المحاولة

المحاولةالتأخير
الأولى1 دقيقة
الثانية5 دقائق
الثالثة30 دقيقة
الرابعةساعتان
الخامسة12 ساعة

بعد 5 محاولات فاشلة، يُنقل التسليم إلى قائمة الرسائل الميتة (DLQ) ويمكنك إعادة المحاولة يدوياً من لوحة التحكم.

قاطع الدائرة (Circuit Breaker)

إذا فشل نقطة نهاية 10 مرات متتالية، يتم تعليقها تلقائياً لمدة 30 دقيقة لحماية خادمك. تعود تلقائياً عند أول نجاح.


استراتيجية المزامنة: سحب أم دفع؟

Data Sync Strategy

النهج الأمثل: الجمع بينهما

  1. المزامنة الأولية — استخدم Pull لاستيراد البيانات التاريخية عبر نقاط التصدير المجمّع (/export)
  2. المزامنة المستمرة — استخدم Push (Webhooks) لتلقي التحديثات فوراً
  3. المصالحة الدورية — جدوِل مهمة Pull كل ساعة للتأكد من عدم فقدان أي بيانات
Terminal window
# مثال: مزامنة أولية للمنتجات
curl -H "Authorization: Bearer tjr_..." \
"https://api.durj.ly/api/v1/products/export" \
-o products.ndjson
# ثم اعتمد على Webhooks للتحديثات الفورية