Top View


Author sakai

LaravelとCQRS #Laravel輪読会 Vol.9

2022/01/14

チーム LIGHT の紹介

チーム LIGHT は現在エンジニア 6 名、デザイナー 2 名の合計 8 人のチームです。 雑記ブログもありますので、よかったらそちらもそうぞ! こちらは技術的な内容ではなく、メンバーの日常のことをつらつらと書いています。

また、不定期で LIGHT@NOON という配信イベントも開催しています。

Laravel輪読会の紹介

チーム LIGHT では、週に 1 回 1 時間、Laravel 輪読会を実施しています。

輪読会で読む本はこちらの本です!

PHPフレームワークLaravel Webアプリケーション開発 バージョン8.x対応

2021/6/1 発売の本で、Laravel8 にも対応しています。

ボリュームもたっぷりな上に、Laravel の設計やテストコードに関する内容も充実しているので、オススメです!

本題

今回読んだページはP.311 ~ P.332 の 「7-3 イベントとキューによるCQRS」 についてです。

7-3-1 CQRS(コマンドクエリ責務分離)

CQRS の概要について。

  • データの書き込み(コマンド)
  • 読み込み(クエリ)

をアーキテクチャレベルで切り離すのが CQRS。大規模なアプリケーションでも保守性・拡張性を保て、読み込みのスケールもしやすくなるなどのメリットがある。

切り離しの手段として、例えば書き込み先は RDBMS、読み込み先は全文検索エンジンというようにデータベースを分ける設計が挙げられている。

7-3-2 アプリケーション仕様

口コミ投稿サイトの構築を例にして CQRS の実装を紹介している。書き込み先 DB に MySQL、読み込み先 DB に Elasticsearch、Queue に Redis を採用。大まかには、MySQL に書き込むたびにイベントを発行し、Queue を介して Elasticsearch のデータを同期させるという設計としている。

sakai

sakai

しがない PHPer です。