2013-12-15 14 views
6

Szukałem w Internecie informacji na temat korzystania zarówno z baz danych Drives Domain Driven Design i Graph, takich jak Neo4j, muszę powiedzieć, że nie ma zbyt wielu informacji!Projekt oparty na domenie wraz z bazą danych wykresów

Moje główne zapytania przychodzą z pozornym nakładaniem się dwóch, tj. Obie bazy wykresów i model DDD domeny, bazy danych Graph jednak tylko stan wstrzymania, a nie zachowanie. Nie jestem pewien, jak połączyć te dwa ... w jaki sposób mogę łączyć zachowanie? Być może korzystasz z usług domeny? Tworzenie encji/wartości domeny dla każdego węzła graficznego wydaje się niedorzecznym sposobem dodawania zachowania.

Wszelkie pomysły?

Odpowiedz

5

Mogą one współistnieć w taki sposób, że bazy danych wykresów są powszechnie używane po stronie "do odczytu".

Co ludzie czasami stosują CQRS do danego kontekstu ograniczonego i używają wykresu dla projekcji, gdzie ma to sens.

3

To zależy od Twojego ograniczonego kontekstu i sposobu korzystania z danych.

dane spożywanie ograniczony kontekst:

Można skorzystać z usługi domeny, aby ukryć technolegy szczegóły. Jest bardzo dobry przykład w słynnym dddsample. Korzystają z usługi RoutingService w celu oddzielenia wiedzy o routingu (odwołującej się do ograniczonego kontekstu routingu) od ograniczonego kontekstu ładunków.

Implementacja za usługą domeny prawdopodobnie nie została jeszcze opracowana przy użyciu ddd. Można go rozwijać w przyjazny dla wykresu sposób.

dane produkujące ograniczony kontekst:

CQRS może być dobrym rozwiązaniem, aby naprawić lukę między modelu domeny i bazy danych wykresu. W tym przypadku modele domenowe służą do generowania obliczonych węzłów i relacji.

+0

Pozwolę sobie sprawdzić, czy rozumiem ... sugerujesz, że mogę używać CQRS, aby móc korzystać z bazy danych wykresów jako modelu zapytania i modelu domeny jako modelu polecenia? W takim przypadku nadal nie jestem pewien co do interakcji między domeną (Command) a grafem (Query) ... czy model domeny nadal aktualizowałby tradycyjną składnicę danych (najprawdopodobniej DB relacji), a następnie byłby powiadamiany o wykresie, aby może odzwierciedlać zmiany. Nie zmienia to w rzeczywistości różnicy między zachowaniem (dostarczonym przez domenę) a stanem (dostarczonym przez wykres). Czy źle mnie zrozumiałem? – JLove

+0

Stan domeny może być przechowywany w czystym rozwiązaniu EventSourcing lub w magazynie klucz/wartość w postaci szeregowej. Zdarzenia są następnie denormalizowane do RDBMS, bazy danych wykresów lub cokolwiek, w zależności od potrzeb zapytania. –

Powiązane problemy