Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AWS Neptune Support? #52

Open
coder369 opened this issue Aug 22, 2018 · 9 comments
Open

AWS Neptune Support? #52

coder369 opened this issue Aug 22, 2018 · 9 comments

Comments

@coder369
Copy link

coder369 commented Aug 22, 2018

[HELP WANTED]

Amazon's graph db "Neptune" is now available. I'm looking to use Ferma as an OGM for an upcoming project. Amazon says Neptune supports Property Graphs by way of Apache TinkerPop. Does that mean by proxy Ferma will work with Neptune? I don't see it listed as an officially support graph db. If not what would it take to add support for it?

@nachogarrone
Copy link

did you find any solution?

@sascha08-15
Copy link

Would be interested to know if that ever happened or if we have to use Gremlin directly when using Neptune.

@freemo
Copy link
Member

freemo commented Jun 16, 2021

Hey, sorry I missed this, going to catchup on FERMA updates and get a new version out soon. Havent tested on Neptune but since FERMA just translates everything to gremlin anyway its hard to see why it wouldnt work. Have you tried it?

@spmallette
Copy link

I think the issue is that Ferma needs a Graph instance to work and since that instance for a "remote" graph is technically an EmptyGraph instance, Ferma has some trouble. A similar question was posted on the Ferma "Getting Started" page:

http://syncleus.com/Ferma/getting_started/

@syncleus-bot
Copy link

syncleus-bot commented Jun 17, 2021 via email

@spmallette
Copy link

In DelegatingFramedGraph it uses the structure API of Graph.addVertex():

return frameNewElement(this.getBaseGraph().addVertex(keyValues), initializer);

for mutations so I think that's perhaps where there is a problem as EmptyGraph has no method implementations...it's just a placeholder:

https://github.com/apache/tinkerpop/blob/0971b2b3992cc079d1d0affac5c1f6dafe7aa7b6/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/empty/EmptyGraph.java

For remote connections (and even for embedded cases) users really only interact by way of Gremlin through the GraphTraversalSource. There are likely other issues with remote use cases as well like:

https://tinkerpop.apache.org/docs/current/reference/#_properties_of_elements

though I hope TinkerPop can change that in the future - i believe there was some community discussion for it already. anyway, definitely a few tricks to sort out to make this work for remote cases, though there seems to be demand for it as some users seem to really like OGM-style development.

@freemo
Copy link
Member

freemo commented Jun 17, 2021 via email

@spmallette
Copy link

thanks, i'd be curious as to what you run into. if you can itemize what you find as being troublesome, perhaps i can help brainstorm workarounds and/or help propose changes in TinkerPop to help smooth the path to get this all working nicely. i sense we've hit on the main trouble spots though at this point: (1) needing to use Gremlin as opposed to the Graph API and related (2) properties on elements.

@freemo
Copy link
Member

freemo commented Jun 17, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants