12

CQRS (Command and Query Responsibility Segregation) アプローチは、堅牢で応答性の高いソーシャル アプリケーション サーバーを GAE に実装するのに適しているように思えます。その理由は次のとおりです。

  1. CQRS は SQL データベースを必要としません (GAE は提供しません)。
  2. シリアル化されたオブジェクトを保持できるデータベースが必要ですが、GAE が実際に提供しています。
  3. GAEも提供するイベントキューが必要です
  4. ノンブロッキング、非同期、メッセージベースのアーキテクチャをサポートしており、長時間実行されるトランザクションに対する GAE の制限をうまく回避します。
  5. スケーラビリティが高いと宣伝されているため、楽観主義者が GAE を選択するのはこれが理由です。

問題は、私はこの選択に関連する経験がほとんどない錆びた Java プログラマーであり、2 つを一緒に使用したことのある人、または少なくとも一方を使用した経験から他方を使用して調査したことのある人からのコメントを非常に歓迎することです。

私の主な質問は次のとおりだと思います。

  1. 新しいアプリケーションの初期段階で CQRS は複雑すぎますか?
  2. GAE のデータストアが CQRS の要件にうまく適合しないなど、適合性が低くなるブービー トラップはありますか?
  3. AxonまたはJdonのいずれかが GAE に特に適している (または適していない) と推奨できる人はいますか?
  4. 他にどのような質問をする必要がありますか?
4

1 に答える 1

13

CQRS はそれほど複雑でも難しくもありませんが、何年にもわたって私たちの頭に突き刺さってきた従来の要求/応答やクライアント/サーバーのやり取りから考え方を変えるには時間がかかります。

イベント ソーシングを使用する CQRS では、ストレージ エンジンから多くを必要としないため、データ ストアは重要ではありません。NEventStoreプロジェクト (C# で記述) は、40 ~ 50 種類のストレージ エンジンを簡単にサポートできます。

純粋な Amazon Web Services と Google App Engine はどちらも、CQRS アプリケーションの優れたプラットフォームです。これは、メッセージングを使用した非同期でノンブロッキングな通信など、適切なインフラストラクチャの選択をすべて案内してくれるからです。

Jdon のことは聞いたことがありませんが、Axon はかなり前から存在しています。フレームワークに頼りすぎないようにしてください。CQRS の理解が深まるにつれて、これはより明白になります。基本的には、コードのあらゆる場所で Hibernate の使用を回避しようとするようなものです。Axon(または選択したもの)は、使用する必要がある場所でのみ使用する必要があり、それ以上は使用しないでください。

CQRS についての理解を深めるのに役立つ、どこにヘルプを求めればよいか、どのようなリソースが既に利用可能であるかについて、より適切な質問をすることができます。cqrsinfo.com などの優れたブログや Web サイトが多数あり、これらを利用して作業を開始できます。また、CQRS を使い始めるなら、Greg Young の 6 時間のビデオは必見です。

于 2011-03-22T02:02:48.463 に答える