DDDのアプリケーションイベント?

Jan 01 2021

この質問は次のようになります。DDDにアプリケーションイベント用語は存在しますか?、しかし、そこで与えられた説明を私の特定の問題に適用する方法がわかりません。

私はを持ってSearchFilmUseCaseおりFilmSearchedEvent、実行が終了したらイベントを発生させたいと思っています。現在、アプリケーション層がイベントを提起しています。ドメインからこのイベントを発生させる唯一の方法は、にありFilmRepositoryます。ただし、リポジトリは単なるインターフェイスであるため、そこでイベントを発生させることはできません。

アプリケーション層でイベントを発生させるのは正しくないと思います。どうすればこの状況に対処できますか?

回答

2 choquero70 Jan 03 2021 at 13:52

1つの解決策は、検索を実行してイベントを発生させるドメインサービスを作成することです。

1 Albert Jan 01 2021 at 20:09

すべてのドメインイベントは、ドメインレイヤーから発生する必要があります。最適な場所は、アクションを実際に実行する必要がある集約ルートです。集約ルートには、発生したすべてのドメインイベントを含めることができ、アプリケーション層でそれらを取得してイベントバスに公開できます。