アーキテクチャ設計・分散システム 重要度:★★出題: AM2・PM2
CQRS(コマンドクエリ責務分離)
しーきゅーあーるえす / Command Query Responsibility Segregation (CQRS)
データの更新処理(Command:登録・変更・削除)と参照処理(Query:検索・集計・一覧表示)のデータモデルおよびデータストアを分離するアーキテクチャパターン。
3行速習ポイント
- データの更新処理(Command:登録・変更・削除)と参照処理(Query:検索・集計・一覧表示)のデータモデルおよびデータストアを分離するアーキテクチャパターン。
- 更新系は正規化されたRDBで厳密な整合性を保ち、参照系は画面表示や分析に最適化した非正規化ビューやインメモリDB・検索エンジンへ非同期反映します。
- 試験対策:参照トラフィックが更新トラフィックの数十倍に達するECサイトや予約システムで、ロック競合を回避し高スループットを実現する...
図解
図CQRS の設計・評価構造
Step 1
更新系(Command)と参照系(Query)の分離
業務要件・システム制約の整理と構造化
↕
Step 2
参照用非正規化リードモデル
更新系は正規化されたRDBで厳密な整合性を保ち、参照系は画面表示や分析に最適化した非正規化
↕
Step 3
ロック競合の解消
在庫更新DBと商品検索用リードモデルをCQRSで分離し、大量検索による更新ロック待ちを解消
概要と本質
データの更新処理(Command:登録・変更・削除)と参照処理(Query:検索・集計・一覧表示)のデータモデルおよびデータストアを分離するアーキテクチャパターン。更新系は正規化されたRDBで厳密な整合性を保ち、参照系は画面表示や分析に最適化した非正規化ビューやインメモリDB・検索エンジンへ非同期反映します。
重要ポイント・コア概念
- 更新系(Command)と参照系(Query)の分離と参照用非正規化リードモデルの正確な定義と適用場面の理解
- ロック競合の解消および結果整合性を踏まえたシステム方式・機能仕様の設計
- 定量的効果:在庫更新DBと商品検索用リードモデルをCQRSで分離し、大量検索による更新ロック待ちを解消して注文処理性能を4倍に改善
午後I記述・午後II小論文試験での攻略ポイント
参照トラフィックが更新トラフィックの数十倍に達するECサイトや予約システムで、ロック競合を回避し高スループットを実現する設計として有効です。
小論文で使える実践フレーズ・キーワード(クリックでコピー)
この用語が出題された過去問を解く(1分演習)
即時アウトプットで定着システムアーキテクト 過去問演習で実践力を鍛える