Servicebus の実装 (NServicebus、MassTransit など) について多くのことを読んでいて、Servicebus のしくみを理解していると思います。私は自分自身を知っており、テクノロジーを使用する傾向があるため、ニーズのオーバーヘッドになる可能性があるため、適切なシナリオが何であるかはまだわかりません.
だから私の質問は次のとおりです。Servicebusを使用する正当な理由/シナリオは何ですか?それを使用するにはDDD技術を使用する必要がありますか?
私が考えたいくつかのシナリオ:
- 外部システムとの通信 (たとえば、アプリケーションが外部システムと通信しており、これらが確実に呼び出されるようにしたい。たとえば、データベース内のオブジェクトを永続化するが、データを同期するために外部 Web サービスも呼び出す必要がある。コマンドを作成し、イベントを取得する 2 つのハンドラーがあり、1 つはデータベースに保持され、もう 1 つは Web サービスを処理します。コマンドが失敗した場合は再試行されます)
- スケーラビリティ (複数のマシンでスケールアウトできる)
- よりクリーンなコードにつながる可能性があります (たとえば、エンティティが更新されたときにいくつかの連続したタスクを実行する代わりに、これらのタスクを分離して実行するさまざまなメッセージハンドラーを使用することができます。たとえば、エンティティを保存したり、別のハンドラーが非正規化されたデータストアで更新を実行したりできます)。