IT用語集 › プログラミング › アウトボックスパターン

アウトボックスパターン

プログラミング Svenska → 更新: 2026-10-22

データベースとメッセージキューを同一トランザクションで更新できない「二重書き込み」問題を、データ変更と同時にイベントをアウトボックステーブルへ書き込み、別プロセスに発行させることで解決するパターン。

問題はこうだ。db.commit() のあとに queue.publish() を呼ぶと、片方だけが成功することがある。結果は中途半端な整合性になる。アウトボックスなら、イベントを同じDBトランザクションの中でテーブルに記録する。リレープロセスがそのテーブルをポーリング(またはDebeziumでCDC読み取り)し、KafkaやRabbitMQへ発行する。保証は「少なくとも一度」の配信なので、コンシューマ側は冪等でなければならない。現代のイベント駆動システムでは定番である。

← 用語集に戻る