2013-12-15 16 views
6

ドメインドリブンデザインとグラフデータベース(Neo4jなど)の使用に関連する情報をオンラインで検索しています。情報がたくさんあるとは言いません。ドメインドリブンデザインとグラフデータベース

私の主なクエリは、2つのグラフデータベースとDDDモデルドメインの両方の明らかなオーバーラップを伴いますが、グラフデータベースは動作のみではなく状態を保持します。私は2つをどのようにミックスするのか本当にわかりません...どうやってミックスするのですか?おそらくドメインサービスを使用していますか?各グラフノードのドメインエンティティ/値を作成することは、動作を追加するばかばかしい方法です。

アイデア?

答えて

5

これらは、グラフデータベースが「読み取り」側で共通に使用されるように共存することができます。

人々は時には、CQRSを特定のBounded Contextに適用し、それが意味のある予測のためにGraph DBを使用します。

3

これは、制限付きのコンテキストとデータの使用方法によって異なります。有界コンテキストを消費

データ:

あなたはtechnolegy詳細を非表示にするには、ドメインサービスを使用することができます。有名なdddsampleには非常に良い例があります。彼らは、RoutingServiceを使用して、貨物予約限定コンテキストからのルーティング知識(ルーティング境界にあるコンテキストとして知られる)を分離します。

ドメインサービスの背後にある実装は、おそらくdddを使用して開発されていません。あなたはグラフデータベースのやり方でそれを開発することができます。有界コンテキストを生成

データ:

CQRSドメインモデルとグラフデータベースとの間のギャップを固定するための良い解決策であってもよいです。この場合、計算されたノードおよび関係を生成するために、ドメインモデルが使用されます。

+0

私が理解しているかどうかを見てみましょう... CQRSを使用して、グラフデータベースをクエリモデルとして、ドメインモデルをコマンドモデルとして使用できるように提案しますか?これが当てはまる場合は、ドメイン(コマンド)とグラフ(クエリ)の間のやりとりについてまだ分かりませんが...ドメインモデルは従来のデータストア(ほとんどの場合、関連DB)を更新し、グラフに通知する変更を反映する可能性があります。これは実際に(ドメインによって提供される)動作と(グラフによって提供される)状態との間のギャップを埋めるものではありません。私は誤解したことがありますか? – JLove

+0

ドメイン状態は、純粋なEventSourcingソリューションまたはキー/値ストアにシリアル化された形式で格納できます。イベントは、クエリの必要性に応じてRDBMS、グラフデータベースなどに非正規化されます。 –

関連する問題