の続きとなります。
EventBusのような間接的な通知を使ったプログラミングでは、送ったはずのイベントが届かない、という事象が起きます。おおよそはバグなのですが、疎結合なコンポーネント設計では、なかなか原因にたどり着くのが大変です。
EventBusでは、発行したイベントにpublicationStatusTrackerインタフェースを実装しておくことで、EventBus内でイベントが運ばれる段階でイベントオブジェクトにステータスが書き込まれ、それを確認することで状況を把握することができます。
ステータスは、PublicationStatus列挙型で以下の種類が定義されています。
Unpublished(未発行) ↓ EventServiceへpublishした Initiated (発行受付) ↓ EventService内でキューにイベントを追加した Queued (配送待ち) ↓ イベントキューから取り出し配送を開始する Publishing (配送中) ↓ すべてのSubscriberに配送を完了した Completed (配送完了)