Syncleus / Ferma

An ORM / OGM for the TinkerPop graph stack.
http://syncleus.com/Ferma
Apache License 2.0
137 stars 26 forks source link

Any plans to integrate with Spring Data and support Datastax DSE Graph? #17

Closed zifnab87 closed 7 years ago

zifnab87 commented 7 years ago

I am curious if it would be possible to have a Spring Data integration of all the Gremlin graph databases - something like: https://github.com/gjrwebber/spring-data-gremlin but using Tinkerpop 3+. I was expecting a less verbose annotation style without the need to create new classes (framed vertices/edges) like it is done with neo4j ogm: https://github.com/neo4j/neo4j-ogm. It would be nice if spring-data-gremlin is merged in spring projects like neo4j one: https://github.com/spring-projects/spring-data-neo4j

I am also curious if Datastax DSE Graph could be supported out of the box from Ferma.

Thanks!

freemo commented 7 years ago

No "plans" but I would be happy to merge any solutions in this regard. So it would be a welcome addition as well. Is tinkerpop able to suppore Datastax DSE graph directly?

zifnab87 commented 7 years ago

at least for my project I am using pure gremlin syntax to query and do mutations. The problem is actually the way they implicitly decide when to commit a transaction. Using a single statement in their fluent gremlin api it is a single transaction. Using their string based gremlin api you can have a multiple statement transaction. They haven't implemented the explicit tinkerpop methods for starting a transaction and committing/rollbacking. So this is the problem right now.. I assume the focus should be JanusGraph now. Btw I am trying to revive this project https://github.com/zifnab87/spring-data-gremlin/tree/feature/TP3_support I forked. it is already integrated with spring-data and has all the annotations from core, jpa and neo4j.. it is just that it was for TP2 and TP3 migration was half-done. it is based on the also possibly outdated https://github.com/orientechnologies/spring-data-orientdb

freemo commented 7 years ago

@zifnab87 Correct me if im wrong but that sounds like a limitation that Ferma could not actually get around. If it doesnt provide the means to do something Ferma can't do it either.

zifnab87 commented 7 years ago

Yeah you are correct although their fluent api is work in progress so hopefully when they finish their transaction implementation they can be integrated

https://datastax-oss.atlassian.net/browse/JAVA-1250 https://datastax-oss.atlassian.net/browse/JAVA-1311

freemo commented 7 years ago

@zifnab87 Most likely once they complete their API someone (maybe me) will write a tinkerpop driver for it. At that point Ferma will work with it out of the box without needing any modifications to Ferma itself.

mullekay commented 7 years ago

Is there an implementation for DSE Graph? Or is anyone aware of a JPA implementation for DSE Graph?

freemo commented 7 years ago

@mullekay tinkerpop appears to support it therefore Ferma should support it. With that said I havent met anyone using it with Ferma. We also are happy to accept extensions for specific databases if there is a use for that (such as exposing database specific features).

https://academy.datastax.com/resources/getting-started-tinkerpop-and-gremlin