این مقاله به بررسی مسئله ترتیب پیامها در سیستمهای نرمافزاری میپردازد. در اکثر سیستمها، نیازی به ترتیب سراسری پیامها نیست، بلکه باید اطمینان حاصل شود که پیامها در محدوده هر تجمعی (aggregate) به ترتیب پردازش میشوند. این موضوع اغلب به عنوان یک مسئله رویدادمحور (eventing) آغاز میشود، اما در نهایت به یک گردش کار (workflow) منجر میشود که به نام «سِگما» (saga) شناخته میشود. رویدادهای دامنه (domain events) راهحلی جذاب به نظر میرسند، اما در هنگام استفاده برای یکپارچهسازی (integration) شکننده هستند. استفاده از «جعبه خروجی» (outbox) به اطمینان از قابلیت اطمینان انتشار رویدادها کمک میکند، اما ترتیب رویدادها را تضمین نمیکند. استفاده از مصرفکنندگان رقابتی (competing consumers) برای افزایش توان عملیاتی مناسب است، مگر اینکه ترتیب رویدادها مهم باشد.
مشاهده مطلب اصلی