2013-12-15 9 views
6

Ho cercato online qualsiasi informazione relativa all'utilizzo di database Domain Driven Design e Graph come Neo4j, devo dire che non ci sono molte informazioni da avere!Domain Driven Design insieme al database Graph

Le mie principali interrogazioni arrivano con l'apparente sovrapposizione tra i due, vale a dire entrambi i database di grafi e il modello DDD il dominio, i database Graph tuttavia mantengono solo lo stato, non il comportamento. Non sono proprio sicuro di come mescolare i due ... come faccio a mescolare il comportamento? Forse usando i servizi di dominio? La creazione di entità/valori di dominio per ciascun nodo grafico sembra un modo ridicolo per aggiungere comportamenti.

Qualche idea?

risposta

5

Possono coesistere in un modo in cui i database del grafico vengono comunemente utilizzati sul lato "lettura".

Le persone a volte applicano CQRS a un determinato Contesto Limitato e utilizzano DB Grafico per le proiezioni in cui ha senso.

3

Questo dipende dal contesto limitato e dal modo in cui si utilizzano i dati.

dati che consumano contesto limitata:

è possibile utilizzare un servizio di dominio per nascondere technolegy dettagli. C'è un ottimo esempio nel famoso dddsample. Usano un RoutingService per separare la conoscenza del routing (evloved come contesto delimitato da routing) dal contesto limitato di prenotazione del carico.

Probabilmente l'implementazione dietro il servizio di dominio non è stata sviluppata utilizzando ddd. Potresti svilupparlo in un modo intuitivo per il database grafico.

dati che producono contesto limitata:

CQRS possono essere una buona soluzione per risolvere il divario tra il modello di dominio e database grafico. In questo caso, i modelli di dominio vengono utilizzati per generare nodi e relazioni calcolati.

+0

Fammi vedere se ho capito ... proponi che potrei usare CQRS in modo da poter usare il database grafico come modello di query e il modello di dominio come modello di comando? In questo caso sono ancora incerto sull'interazione tra dominio (Comando) e grafico (Query) ... il modello di dominio aggiornerebbe ancora l'archivio dati tradizionale (molto probabilmente il DB di relazione) quindi il grafico verrà notificato in modo che potrebbe riflettere i cambiamenti. Questo in realtà non colma il divario tra comportamento (fornito dal dominio) e stato (fornito dal grafico). Ho frainteso? – JLove

+0

Lo stato del dominio può essere memorizzato nella soluzione EventSourcing pura o nell'archivio chiavi/valore in formato serializzato. Gli eventi vengono quindi denormalizzati in RDBMS, database di grafici o qualsiasi altra cosa, a seconda delle esigenze della query. –

Problemi correlati