Spero di sentire qualcuno di voi che ha architettato e implementato un'app Neo4j di dimensioni decenti (10 milioni di nodi/rel) e quali sono le vostre raccomandazioni in particolare sulla modellazione e le varie API (vanilla java/groovy Neo4j vs Spring -Data-Neo4j vs Grails GORM/Neo4j).Architettare un'applicazione basata su Neo4j: attenersi all'API di vanilla utilizzando nodi e relazioni semplici o utilizzare Spring/GORM?
Mi interessa se è effettivamente utile aggiungere il layer OGM (object-graph-mapping) e le astrazioni associate?
ha esperienza di nessuno stato che è meglio attenersi a 'normale' grafico-modellazione con nodi + proprietà, relazioni + proprietà, attraversamenti e (per esempio) Cypher per modellare e memorizzare i loro dati?
La mia preoccupazione è che "forzare" una particolare astrazione OGM su un database grafico influirà sulla flessibilità futura nell'adattare/modificare il modello di dominio e/o la flessibilità nell'inquisire i dati.
Siamo un negozio Grails, e ho sperimentato GORM/Neo4J e anche con spring-data-neo4j.
Lo scopo principale del set di dati sarà quello di modellare e interrogare le relazioni tra un numero enorme di persone, i loro alias, i loro associati e ogni tipo di attività criminale e cronologia. Ci saranno più di 50 classi di dominio principali. Ci deve essere flessibilità nel modello (che dovrà evolvere rapidamente nelle prime fasi del progetto) e nella velocità e flessibilità delle query.
devo confessare, sto lottando per trovare un motivo valido per utilizzare uno strato di OGM quando posso utilizzare (per esempio) o POJO Pogos, un po 'di magia Groovy e qualche semplice oggetto di dominio arrotolato a mano < -> nodo/codice di mappatura delle relazioni. Per quanto posso dire, penso che sarei felice solo a trattare con i nodi & traversamenti & Cypher (aka KISS). Ma sarei molto felice di ascoltare le esperienze e le raccomandazioni degli altri.
Grazie per il vostro tempo & pensieri,
TP
Grazie a Stefan, in realtà stavo per contattarti direttamente per chiederti dell'esperienza di "vita reale" con il plug-in GORM/Neo4J. Sto cercando di evitare comuni trucchi architettonici e di codifica quando si utilizza Neo4J, specialmente nel caso in cui venga utilizzato un layer di mappatura del grafico degli oggetti. –