ما هو نمط Saga
المعاملات الموزعة من خلال تسلسل الأحداث
نمط Saga هو نمط لإدارة المعاملات الموزعة من خلال تسلسل من المعاملات المحلية مع إجراءات تعويضية عند الفشل.
المشكلة
- الخدمات المصغرة لها قواعد بيانات خاصة بها
- معاملات ACID الكلاسيكية مستحيلة
- الاتساق بين الخدمات مطلوب
أنواع Saga
- الكوريوغرافيا — الخدمات تتبادل الأحداث
- التنسيق — منسق مركزي يدير
الكوريوغرافيا
- الخدمات تشترك في أحداث بعضها البعض
- كل خدمة تنشر نتيجتها
- لا نقطة فشل واحدة
- أصعب في تتبع الحالة
التنسيق
- منسق Saga يدير التدفق
- يستدعي الخدمات بالتسلسل
- أسهل في التتبع والتصحيح
- خطر نقطة الفشل الواحدة
المعاملات التعويضية
- التراجع عن الخطوات المكتملة
- يجب أن تكون متماثلة
- تراجع دلالي (ليس rollback)
- مثال: استرداد الدفع بدلاً من الإلغاء