Command Query Responsibility Segregation(CQRS)とは
コマンドクエリ責務分離のことです。
現時点での考え方
まだしっかり実行したことはないですが、こう考えています。
- 「履歴」を表すためには必須
- GraphQLを使用する
- Command側
- NoSQL(KVS)を使用
- DDDの考え方を採用する
- Query側
- RDBMSを使用する
まだ分かってないところ
まだ作ってない段階ですが、この辺りが自分の中では悩みどころです。
- CRUDからの移行方法
- Query側の外部キーによる結合はどうなるか
外部サイト
- コマンド・問い合わせの分離
- Chatworkのテックリードが語る、CQRSを上手に使うため方法 - ログミーTech
- CQRSはなぜEvent Sourcingになってしまうのか - かとじゅんの技術日誌
- DynamoDBによるOutboxパターンとCDCを用いたCQRSアーキテクチャの実装〜ZOZOMOでの取り組み - ZOZO TECH BLOG