یکی از پیچیدهترین و در عین حال پرکاربردترین الگوهایی که برای مدیریت تراکنشهای توی میکروسرویسها و سیستمهای توزیعشده استفاده میشه، الگوی Saga هست. این الگو کلی مزیت داره، از جمله:
- میتونیم یک Transaction بزرگ رو به چند کار کوچکتر تقسیم کنیم و اون رو مرحله به مرحله با مدیریت خوب جلو ببریم
- اگه تو یکی از این مراحل خطایی پیش بیاد، میتونیم به یک حالت پایدار برگردیم و از اونجا کار رو ادامه بدیم
- به سرویسهای مختلف توی میکروسرویسهامون استقلال میده و وابستگیها رو کم میکنه (Loose Coupling)
- نسبت به روشهای دیگه برای مدیریت تراکنشهای توزیعشده راحتتره (مثلاً حتماً میدونید که Two Phase Commit چه دردسر بزرگیه!)
توی این ویدیو به بررسی کامل این الگو میپردازیم و توی یک پروژه واقعی با استفاده از Masstransit و ترکیب اون با RabbitMQ و EF Core پیادهسازیش میکنیم.
پن: آدرس ریپوی مربوط به کدهای این قسمت رو هم در انتها قرار دادم. اگه این ویدیو براتون جالب بود، ممنون میشم با دادن ⭐️ از اون حمایت کنید
Code Repo:
https://github.com/babaktaremi/OrderManagement.Saga.Example
Join: https://t.me/DotNetIsFun
Post #38
112