Skip to content

المزامنة دون اتصال

الجوال يعمل دون اتصال أولاً. الخادم يبقى مصدر الحقيقة. العملاء يحتفظون بذاكرة SQLite/Drift محلية للقراءة وصندوق صادر للكتابة دون اتصال، ثم يتقاربون عبر السحب والدفع.

الأهداف

  • الاستمرار في العمل خلال انقطاعات طويلة دون فقدان بيانات بصمت.
  • اكتشاف التعارضات بإصدارات الصفوف وطوابع الخادم الزمنية.
  • نشر الحذف الناعم كسجلات مقبرة.
  • إبقاء المستندات المالية/المخزنية المُرحَّلة غير قابلة للتعديل — التصحيحات عبر تعديل أو إلغاء أو عكس أو تسوية.

نقاط النهاية

الطريقةالمسارالغرض
GET/v1/sync/manifestقدرات مزامنة الكيانات
GET/v1/sync/pull?since=<cursor>التغييرات المُصفّحة منذ المؤشر
POST/v1/sync/pushرفع الطفرات المحلية المخزّنة
POST/v1/sync/resetإعادة بناء الذاكرة المحلية من الخادم

توجد متغيرات بنطاق المنشأة تحت /v1/businesses/:business_id/sync/....

كيف يعمل

  1. كل مورد تجاري له sync_version يُرفع عند كل تحديث (بما في ذلك الحذف الناعم).
  2. السحب يستخدم مؤشراً معتماً غير شفاف (JSON base64url على (updated_at, id)).
  3. الدفع يطبّق دفعة من الطفرات المحلية؛ تظهر التعارضات بشكل حتمي.
  4. مبيعات نقاط البيع تستخدم client_sale_id غير متكرر لتكون إعادة المحاولات بعد إعادة الاتصال آمنة.

نصائح للمشغّل

  • اترك عملية شريط مهام أمين الصندوق على Windows تعمل ليُفرغ المزامنة الخلفية صندوق الصادر.
  • بعد إعادة ضبط الجهاز، نفّذ سحب المزامنة قبل قبول المدفوعات.
  • لا «تُحرّر» فاتورة مُرحَّلة في مكانها — استخدم إشعارات الدائن / العكس / التسوية.

ذات صلة

وثائق تدبير للمشغّلين والمطوّرين وشركاء التنفيذ.