コンテンツへスキップ
uencoder

CQRS

CQRS は読み取りと書き込みの操作を別々のモデルに分離する。読み取り側はクエリを、書き込み側はバリデーションを最適化し、多くはイベントソーシングと組み合わせる。

目的

読み取りと書き込みを分離し、それぞれ側のパフォーマンスとスケーラビリティを最適化する。

メカニズム

コマンド(書き込み)とクエリ(読み取り)は異なるモデル/データストアを使う。書き込みモデルはビジネスルールを強制し、読み取りモデルはクエリを最適化する(マテリアライズドビュー/検索インデックス)。読み取りストアは異種でよく(Elasticsearch/Redis)。結果整合的である。

ユースケース

  • 読み書きの分離
  • パフォーマンス最適化
  • イベントソーシング

関連用語

References