![Author](https://tech.fusic.co.jp/uploads/1_1595226121.png)
Table of Contents
チーム LIGHT の紹介
チーム LIGHT は現在エンジニア 6 名、デザイナー 2 名の合計 8 人のチームです。 雑記ブログもありますので、よかったらそちらもそうぞ! こちらは技術的な内容ではなく、メンバーの日常のことをつらつらと書いています。
![LIGHT BLOG](https://light.fusic.co.jp/images/logo/logo_LIGHT_256.png)
また、不定期で LIGHT@NOON という配信イベントも開催しています。
Laravel輪読会の紹介
チーム LIGHT では、週に 1 回 1 時間、Laravel 輪読会を実施しています。
輪読会で読む本はこちらの本です!
![Amazon.co.jp: PHPフレームワークLaravel Webアプリケーション開発 バージョン8.x対応 eBook : 竹澤有貴, 栗生和明, 新原雅司, 大村創太郎: Kindleストア](https://m.media-amazon.com/images/G/09/gno/sprites/nav-sprite-global-1x-reorg-privacy._CB600088431_.png)
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](https://tech.fusic.co.jp/uploads/1_1595226121.png)
sakai
しがない PHPer です。
Related Posts
![Daiki Urata](https://d3t2k53lg8fjy7.cloudfront.net/public/fdb95e707b9319f0957b90be9c3ac3d6d4f3f273.jpeg)
Daiki Urata
2023/01/05
![sarah](https://tech.fusic.co.jp/uploads/t029hjh6w-u01h66gf6gh-08ea36161a26-512.png)
sarah
2022/04/20