0

私は、分散ドメイン駆動設計の背後にあるいくつかの概念の亀裂について話し、概念​​実証を構築しています。システム全体で特定の責任を持つ 3 つの C# ソリューションがあります。

私が持っている解決策は次のとおりです。

  • 書き込みモデル (クライアントからコマンドを受け取り、イベントを作成して送信する)
  • 読み取りモデル (書き込みモデルからイベントを受け取り、データベースを作成し、DTO サービスをクライアントに公開します。潜在的に 2 つの別個のソリューションになる可能性があります)
  • クライアント (サービスを呼び出して必要なデータを取得し、書き込みモデルにコマンドを送信します)

3 つのソリューションはすべて、サービス バスを介してメッセージング (コマンド、イベント) を使用します。(私の場合はMassTransit)。

私の主な質問は、メッセージを含むアセンブリを作成し、各ソリューションがそのアセンブリを参照するのが一般的ですか?

特別評価:この POC で、私が行っていることで奇妙または問題があると思われることはありますか? このタイプのシステムを作成する際に知っておくべき追加情報はありますか?

4

1 に答える 1

4

メッセージを含むアセンブリを作成し、各ソリューションでそのアセンブリを参照するのは一般的な方法ですか?

はい。これは、一般的なメッセージング システムでは一般的な方法です。たとえば、多くの NServiceBus サンプルはこのアプローチを採用しています。このアセンブリは、契約を表すものと考えてください。異なるプラットフォーム上に構築されたシステムでは、この表現は XSD スキーマまたはその他のスキーマ定義メカニズムの形式になります。

この POC で私が行っていることで、奇妙または問題があると思われることはありますか? このタイプのシステムを作成する際に知っておくべき追加情報はありますか?

これまでのところ、すべてが CQRS にうまく適合しているようです。公平を期すために言うと、特効薬としての CQRS とその周辺の構造システムに夢中になるのは簡単です。多くの場合、CQRS をまったく使用しないことが賢明な決定です。ビジネス ドメインに焦点を当て、システムを実装するためのアーキテクチャ スタイルとして CQRS を使用します。モデルをガイドするためではありません。

于 2012-10-26T18:31:26.313 に答える