私は2つのシナリオを見ていました:Aは大丈夫です、Bはわかりません。
シナリオA:コミット後、ディスパッチ前にアプリケーションの再起動をシミュレートする
- EventStoreを開始します
- 変更をコミットする
- イベントはディスパッチされません
- イベントストアを停止する
- イベントストアを開始
コミットされたイベントは、手順5で再度送信されます。これは正常に機能し、ディスパッチャコードでも確認できます。
シナリオB:バスエラーをシミュレートする
- EventStoreを開始します
- 変更をコミットする1
- ディスパッチャの例外
- 変更をコミットする2
- 発送OK
この場合、動作を見つけることができず、それが有効なケースであるかどうかも疑問に思います。これは、バスコードにバグがあった場合にのみ発生する可能性があります。
ディスパッチを再試行するトリガーはありますか、それともこれを処理するためのコードを記述する必要がありますか、それとも私の推論に誤りがありますか?