CQRS
Command Query Responsibility Segregation
コマンド(更新系)とクエリ(参照系)を分離するパターン
副作用が主目的の処理
データの状態を変更する
書き込み
操作の成否以外の情報を返さない
データの取得が主目的の処理
結果を返す
データの状態は変更しない
副作用がない
操作は冪等である
同じクエリを間違えて何度実行しても結果は変わらない
非正規化したデータモデル
?
参考
疑問
「ユーザー情報」みたいなクラスがあってその一部、例えばメールアドレスのみを書き換えたいときに
CRUDだと「ユーザー情報」を変更する
CQRSだと「メールアドレスのみ」を変更する
という違いがあって、これが良い、みたいなことが書かれているように見えるが、そうなの?
CRUDでも特定のフィールドのみの更新はできそうだけど無理なの?
と、思ったがRESTのやり方がCRUDだというなら、そうなのか、
対してGraphQLなら単一で更新可能、的な?
参考ページも