ですから、私はアプリケーションのCQRSの概念が好きです。これは、主に、イベントソーシングをすでにサポートしているためです(概念的には、そこにある処方箋に従わないでください)。ただし、CQRSはビッグデータ、結果整合性などを対象としているようです。私たちは常にリレーショナルDBアプリになるので、それが適合するかどうかはわかりません。
また、アプリ層で特別なことをする必要があると思うので、心配しています。読み取りを行うときは、セキュリティを強化し、データをフィルタリングする必要があります。これは、従来はアプリケーション層に実装されていたものです。
私の最初の質問は、私のアプリは適合していますか(従来のMVC /リレーショナルDBアプリ)?または、従来のアプリレイヤーを使用してDTOマッパーを使用する方が理にかなっていますか?
私の2番目の質問は、従来のアプリケーション層からドメインモデルにコマンドを発行することは意味がありますか?私はコマンド/コマンドハンドラーとイベントのアイデアが好きです。
私の質問を明確にしましょう。承認に関連するデータフィルタリングについて懸念があります。ユーザーがデータを要求するときは、特定のデータ要素をまとめて削除する(呼び出し元に返されないようにする)、値を非表示にする、またはデータにマスクを適用することにより、特定のデータ要素へのアクセスを制限するフィルターが必要です。不自然な例では、社会保障番号の場合、リクエストを行ったユーザーは最後の4つの番号しか表示できない可能性があるため、結果は###-##-1234のようになります。
私の主張は、この責任はアプリケーション層にあるということです。これは、クエリまたはコマンドへのすべての応答がこのフィルターメカニズムを通過する必要がある側面だと思います。これが私のCQRSの素朴さが際立つところです。おそらく、コマンドがデータを返すことはなく、読み取りモデルで検索されたデータへのポインターだけを返すのでしょうか。
ありがとう!