ペット プロジェクトに CQRS を適用しようとしています。私の例ではFood
とがありCourse
ます。
コースは、さまざまな食品の多くのアイテムで構成されています。
私の設計では、次のコマンドがあります。
AddFoodToCourse
ChangeFoodQuantityInCourse
等...
CourseCommandHandler を作成すると、コースを変更するために ICourseRepository を依存関係として取得しますが、コマンドをシンプルに保つために、Food の代わりに CourseId および FoodId プロパティを使用します。
ハンドラーでは、ID のみを管理し、リポジトリからすべての関連データを取得すると思いますか?
正しく理解している場合、アプリは次のワークフローに従う必要があります。
使用ReadModel
=>コマンドを作成してバスに送信=>CommandHandler
コマンドを消費し、オブジェクトを操作しdomain object
て保存repositories
=>Domain objects
イベントを発生させてバスに発行=>EventHandler
イベントを消費してReadModel
オブジェクトを変更