🧠 جمعبندی
Domain Event
ها به شما کمک میکنند تا سیستمی loosely coupled بسازید.
میتوانید از آنها برای جدا کردن منطق اصلی دامنه از اثرات جانبی (side effects) استفاده کنید،
اثراتی که میتوانند به صورت asynchronous مدیریت شوند.
لازم نیست برای پیادهسازی Domain Eventها از صفر شروع کنید؛
میتوانید از ترکیب EF Core و MediatR استفاده کنید تا این قابلیت را بهسادگی بسازید.
باید تصمیم بگیرید که چه زمانی میخواهید Domain Eventها را منتشر کنید:
قبل یا بعد از ذخیره شدن تغییرات در پایگاه داده — هرکدام مزایا و معایب خاص خود را دارند.
من شخصاً ترجیح میدهم بعد از ذخیرهسازی تغییرات Domain Eventها را منتشر کنم
و برای اطمینان از تراکنش اتمیک، از الگوی Outbox استفاده میکنم.
این رویکرد باعث ایجاد eventual consistency میشود،
اما در عین حال قابل اعتمادتر است.
امیدوارم این مطلب برایتان مفید بوده باشد 🙌
🔖هشتگها:
#DomainEvents #EFCore #OutboxPattern #EventDriven #DesignPatterns #LooselyCoupled