🎉 回答者が「いい質問」に選出しました 🎉

¥500

11月30日

質問者さん

CQRS/ESを使うべきではないケースは、どのようなものがありますか?

12月01日

かとじゅん

かとじゅんさん

CQRS/Event Sourcingを使用する理由は以下のようなものです。 - パフォーマンスの最適化:読み取りと書き込みの操作が異なるモデルやデータストアを使用できるため、それぞれを最適化することが可能です。例えば、書き込みモデルはトランザクション処理に特化し、読み取りモデルは高速なクエリ応答に特化できます。 - スケーラビリティの向上:読み取りと書き込みのコンポーネントを独立させることで、それぞれを別々にスケーリングすることができます。これにより、リソースをより効率的に利用し、システムの全体的な処理能力を向上させることができます。 - 複雑性の管理:CQRSは、ビジネスロジックをより単純で管理しやすい形に分離することにより、システムの複雑性を減らすのに役立ちます。 - セキュリティと安定性:書き込みと読み取りの処理を分離することで、セキュリティリスクを軽減し、システムの安定性を向上させることができます。 - 柔軟性と保守性:異なるモデルを使用することで、将来の変更や拡張が容易になり、システムの保守性が向上します。 というのが教科書的な説明ですが、考案者のGregさんは以下のように言っています。 > The application of Domain Driven Design is not possible in the above architecture though many who are “practicing” Domain Driven Design use this architecture. The reasoning for why it is impossible can easily be seen when one looks at how the Ubiquitous Language is represented by the object model. > ドメイン駆動設計を実践している多くの人は、先述のアーキテクチャを使用しますが、このアーキテクチャではドメイン駆動設計 のアプリケーションは不可能です。なぜ不可能なのかという推論は、ユビキタス言語がどのようにオブジェクトモデルを表現する のかを見れば、簡単に導くことができます。 先述のアーキテクチャとは非CQRSスタイルのことです。言い切ってますね。 これをもう少しかみ砕くと以下のようなことです。この資料の62ページから66ページまでをみてください。 https://speakerdeck.com/j5ik2o/ikanikai-fa-xiao-lu-topin-zhi-wogao-meruka-domeinqu-dong-she-ji-tozu-zhi-patannoshi-dian-karakao-eru?slide=62 ドメインモデルとリポジトリを使って複雑なクエリ要件を実装する際に、破綻が起きることが分かると思います。 逆にいえば、クエリ要件がそこまで複雑なものがない&非機能要件もそれほど高くないのであれば、CQRS/ESは不要かもしれません。

かとじゅんさんに 質問してみましょう!

かとじゅん

かとじゅん

Chatwork社テックリード/DDD/Scala,Rust/A-CSM,CSPO,CSD/NLP Practitioner/お仕事のご相談は➡ https://t.co/e6L5mvqaIx / 質問は➡https://t.co/m3VwQnynVZ / Github sponsor ➡ https://t.co/JC9amBhwM9

Tips質問回答方針

Tips額に応じて優先して詳細に回答します。

Tips報酬金額を選択する

(Tips質問者は回答全文をメール受領できます)

¥0(無料質問)

かとじゅんさんが

回答したTips質問

¥500

いいね!

12月01日

CQRS/ESを使うべきではないケースは、どのようなものがありますか?

かとじゅんさんが

「いいね」した質問

¥500

いいね!

12月01日

CQRS/ESを使うべきではないケースは、どのようなものがありますか?

いいね!

11月26日

どんなに高カロリーなものを食べても健康状態の意味で、べき等だった時代に戻りたいです。

かとじゅんさんが

最近答えた質問

06月22日

scala matsuriとKotlinFestを比較すると、やはりkotlinの方が圧倒的に盛り上がっている印象を感じます。 scalaの衰退についてどのように感じられていますか?(衰退という表現は適切ではないかもしれませんが)

06月16日

infra層のSQLを記述する際、いわゆるDSLでのSQLを構築するメリットがあまり理解できず、scalikejdbcのwithSqlなどは用いず、SQLオブジェクトに生SQLを記述してmap変数で型変換しております。 かとじゅんさんは生SQL派とDSL派の争いに対してどのような立場でしょうか?

05月23日

↓R↑LYBXA