シナリオ
システムの主要なコンポーネントが 3 つあるとします。
UI - ユーザーからの入力を収集し、メッセージ バス経由で送信されるLoginUserCommandを作成します。次に、ユーザー インターフェイスはMessageReceivedEvent(s) のこのメッセージ バスをリッスンします。
ユーザー サービス- LoginUserCommand を受け取り、UserLoggedInEventを発生させます。ここで重要なのは、Message Serviceにメッセージの受信を開始するように指示する必要があるということです。
Message Service -ログインしているユーザーに対してMessageReceivedEventを発生させます。
オプション
私が持っている設計上の質問は、User ServiceとMessage Serviceの間の相互作用に関するものです。
ユーザーがログインすると、さまざまなことが発生する必要があります。UI がメッセージを受信し始めるように、サービスを調整する必要があります。
するべきか...
- ユーザー サービスにUserLoggedInEventを発生させ、メッセージ サービスにこのイベントをリッスンさせ、ユーザーがメッセージを受信するために必要な作業を実行させますか?
...また...
- ユーザー サービスにUserLoggedInEventを発生させますが、コマンド - StartMessageRecomingCommand を作成し、これを明示的にメッセージ サービスに送信しますか?
質問
各アプローチの長所と短所は何ですか? (カスケード イベントと明示的なコマンド)。他のオプションはありますか?