Transactional Outbox Pattern
#RDB にてデータの書き込みと #Messaging_Bus へのメッセージの送信を確実に両立させるための手法
同じ DB の1つのトランザクション内で何らかのテーブルへのデータの書き込み、イベントを表す Outbox テーブルへの書き込みを行う
Q. #Messaging_Bus への送信をトランザクション内で行えばいいのでは?
A. 送信完了後、何らかのエラーでトランザクションのコミットに失敗すると一貫性が維持されないため不十分である
またトランザクション時間が長くなる、などのレイテンシ的なデメリットもあるはず
多少の損失を許容できるなら実装が容易なのでやってもいいかもしれない
参考文献
Pattern: Transactional outbox