2013-12-15 7 views
6

Ich habe online für alle Informationen im Zusammenhang mit der Verwendung sowohl Domain Driven Design und Graph-Datenbanken wie Neo4j gesucht, ich muss sagen, es gibt nicht viele Informationen zu haben!Domain Driven Design neben Graph-Datenbank

Meine wichtigsten Abfragen kommen mit der scheinbaren Überlappung zwischen den beiden, d. H. Beide Graph-Datenbanken und DDD-Modell der Domäne, Grafik-Datenbanken jedoch nur Zustand, nicht Verhalten. Ich bin nicht wirklich sicher, wie man die beiden mischt ... wie mische ich das Verhalten ein? Vielleicht mit Domain-Services? Das Erstellen von Domain-Entities/-Werten für jeden Graph-Knoten scheint eine lächerliche Möglichkeit zu sein, Verhalten hinzuzufügen.

Irgendwelche Ideen?

Antwort

5

Sie können so nebeneinander existieren, dass Graph-Datenbanken häufig auf der "Lese" -Seite verwendet werden.

Manchmal verwenden sie CQRS auf einen gegebenen beschränkten Kontext und verwenden Graph DB für Projektionen, wo es Sinn macht.

3

Dies hängt von Ihrem beschränkten Kontext und davon ab, wie Sie die Daten verwenden.

Daten beschränkten Kontext raubend:

Sie können einen Domain-Service nutzen technolegy Details zu verbergen. Es gibt ein sehr gutes Beispiel in der berühmten dddsample. Sie verwenden einen RoutingService, um Routing-Wissen (evroved als Routing-beschränkter Kontext) vom Frachtbuchungs-beschränkten Kontext zu trennen.

Die Implementierung hinter dem Domain-Service ist wahrscheinlich nicht mit ddd entwickelt. Sie könnten es in einer graphendatenbankfreundlichen Weise entwickeln.

Daten beschränkten Kontext Herstellung:

CQRS kann eine gute Lösung sein, die Lücke zwischen Domänenmodell und Graph-Datenbank zu reparieren. In diesem Fall werden Domänenmodelle verwendet, um berechnete Knoten und Beziehungen zu erzeugen.

+0

Lassen Sie mich nur sehen, wenn ich verstehe ... Sie schlagen vor, dass ich CQRS verwenden könnte, so dass ich die Diagrammdatenbank als das Abfragemodell und das Domänenmodell als das Befehlsmodell verwenden kann? Wenn dies der Fall ist, bin ich immer noch unsicher über die Interaktion zwischen Domäne (Befehl) und Grafik (Abfrage) ... Würde das Domänenmodell immer noch den traditionellen Datenspeicher aktualisieren (wahrscheinlich Relation DB), dann wird das Diagramm benachrichtigt, so dass es könnte die Änderungen widerspiegeln. Dies überbrückt nicht wirklich die Lücke zwischen dem Verhalten (bereitgestellt von der Domäne) und dem Zustand (bereitgestellt durch das Diagramm). Habe ich missverstanden? – JLove

+0

Domänenstatus kann in einer reinen EventSourcing-Lösung oder in einem Schlüssel-/Wertspeicher in serialisierter Form gespeichert werden. Ereignisse werden dann in RDBMS, eine Diagrammdatenbank oder was auch immer demormalisiert, abhängig von Ihren Abfrageanforderungen. –

Verwandte Themen