Upgrade to Pro — share decks privately, control downloads, hide ads and more …

なぜ書き込みDBと 読み取りDBを分けるのか?

Avatar for suzuki masayuki suzuki masayuki
July 12, 2025
17

なぜ書き込みDBと 読み取りDBを分けるのか?

CQRS/ESアーキテクチャにおいて、「なぜ書き込みDBと読み取りDBを分けるのか?」という根本的な問いに答えるための解説資料です 。

本資料では、書き込みと読み取りのDBが依存している状態では、CQRS/ESの真のメリットを受けられないと解説しています 。書き込みDBは「イベント」を時系列に追記するだけのシンプルな構造にすることで高いスループットを維持します 。一方、読み取りDBは、そのイベントを「プロジェクティング」することで、ユースケースに最適化されたデータを柔軟に作成できます 。

この分離によって、「システムの完全な履歴追跡」「高トラフィックへの対応力」「柔軟なデータ表示」といった強力な利点がもたらされる仕組みを、図解を交えて分かりやすく説明します 。

Avatar for suzuki masayuki

suzuki masayuki

July 12, 2025
Tweet

More Decks by suzuki masayuki

Transcript

  1. 自己紹介 RailsWay を守りつつ DDD/モジュラーモノリス クリーンアーキテクチャを実践中 さらなる設計スキルアップとして CQRS/ES をフルスクラッチ で組みながら勉強中 鈴木まー

    マイブーム ChatGPTを使って9人の生成AI キャラクターを使って、ラノベ風 の物語のテキストとイラストを生 成している それをNoteBookLMで 深読み考察をしたを聞いている
  2. 本来の姿 ユースケースに特化した表示用データが簡単に作成できる i ユースケースに合わせて、表示用データ(Read Model) を好きな形で作れる
 ─ 余計な JOIN や正規化を気にしないでいG

    i 画面を変えても UI が変わっても、コマンドをイベントに 書き込むロジックはそのまま ── 画面に引っ張られない 設計ができる