Outbox Pattern رویداد خروجی را در همان تراکنش تغییر داده اصلی در جدول Outbox ثبت میکند و Worker جداگانه آن را منتشر میکند.
از مفهوم تا اجرا
ثبت سفارش و ثبت رویداد سفارش در یک تراکنش انجام میشود تا بعد از Crash پیام از دست نرود.
مصرفکننده باید Idempotent باشد چون انتشار دوباره ممکن است رخ دهد.
آوتباکس پترن و تحویل پیام
سفارش و رویداد OrderPlaced در یک تراکنش محلی ذخیره میشوند. Worker رویداد را از جدول Outbox به Broker منتقل میکند. مصرفکننده باید تکرار احتمالی پیام را مدیریت کند.