Mam nadzieję usłyszeć od każdego z was, którzy zaprojektowali i wdrożyli przyzwoitą aplikację Neo4j (10 milionów węzłów/relacje) - i jakie są wasze zalecenia w szczególności w zakresie modelowania i różnych interfejsów API (vanilla java/groovy Neo4j vs Spring -Data-Neo4j vs Grails GORM/Neo4j).Architektura aplikacji opartej na Neo4j - trzymaj się API wanilii za pomocą zwykłych węzłów i relacji lub użyj Spring/GORM?
Jestem zainteresowany, czy to naprawdę się opłaca, aby dodać dodatkową warstwę OGM (obiekt-wykres-mapowanie) i związane z nią abstrakcje?
Czy ktoś ma doświadczenie, że najlepiej jest trzymać się "prostego" modelowania wykresów z węzłami + właściwościami, relacjami + właściwościami, przejazdami i (np.) Cypher, aby modelować i przechowywać swoje dane?
Moim zmartwieniem jest to, że "wymuszenie" szczególnej abstrakcji OGM na bazie danych wykresów wpłynie na przyszłą elastyczność w adaptacji/zmianie modelu domeny i/lub elastyczność w wyszukiwaniu danych.
Jesteśmy sklepem Grails i eksperymentowałem z GORM/Neo4J, a także z danymi sprężynowymi-neo4j.
Głównym celem zbioru danych będzie modelowanie i sprawdzanie relacji między liczebnością osób, ich pseudonimami, współpracownikami oraz wszelkimi rodzajami działalności przestępczej i historią. Będzie ponad 50 głównych klas domeny. Model musi charakteryzować się elastycznością (która musi szybko ewoluować we wczesnych fazach projektu) oraz szybkością i elastycznością zapytań.
Muszę się przyznać, walczę, aby znaleźć nieodparty powód do użycia warstwy OGM, gdy mogę użyć (np.) POJO lub POGO, trochę magii Groovy i jakiegoś prostego ręcznego zwiniętego obiektu domeny < -> węzeł/kod odwzorowania relacji. O ile mogę powiedzieć, myślę, że byłbym szczęśliwy mając do czynienia z węzłami & traversals & Cypher (aka KISS). Ale byłbym bardzo szczęśliwy słysząc doświadczenia i zalecenia innych.
Dzięki za swoimi myślami czas &,
TP
Dziękuję Stefan, faktycznie miałem zamiar skontaktować się z Tobą bezpośrednio, aby zapytać Cię o "rzeczywiste" wrażenia z wtyczki GORM/Neo4J. Staram się unikać typowych znaków graficznych i kodowania przy korzystaniu z Neo4J, szczególnie w przypadku, gdy używana jest warstwa odwzorowania obiektów graficznych. –