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

Feature Request: Support other Graph DBs and Query Languages #510

Open
robertoandrade opened this issue Aug 23, 2017 · 11 comments
Open

Feature Request: Support other Graph DBs and Query Languages #510

robertoandrade opened this issue Aug 23, 2017 · 11 comments

Comments

@robertoandrade
Copy link

robertoandrade commented Aug 23, 2017

Ie: I'm interested in using this and even help contribute to abstracting the underlying code to be able to talk to Apache TinkerPop Graph DB implementations such as Titan/JanusGraph using Gremlin query language (even though they also support CQL).

@amorgner
Copy link
Member

Sounds interesting!

Please have a look at https://github.com/structr/structr/tree/master/structr-db-driver-api, this is the API to implement.

At the moment, the only working implementation is the Neo4j Bolt driver: https://github.com/structr/structr/tree/master/structr-neo4j-bolt-driver

@poojits
Copy link

poojits commented Mar 6, 2018

This would be really powerful if there is an implementation of the structr-db-driver-api which uses Gremlin so that structr can be used for https://aws.amazon.com/neptune/

@eric-schleicher
Copy link
Contributor

^ yes that sounds very interesting

@cmorgner
Copy link
Member

@robertoandrade There have been many changes towards supporting other database implementations recently, please have a look at the in-memory-driver branch.

We're more than happy to support a Gremlin driver implementation, is there anything we can do to help you?

@mingfang
Copy link
Contributor

mingfang commented Nov 5, 2020

I'm interested in using Structr with ArangoDB https://www.arangodb.com

@vigorouscoding
Copy link
Member

Currently Structr supports Neo4j (v3.5), has an in-memory driver and an experimental driver for MemgraphDB. The recommended driver for production systems is the Neo4j driver.

We are working on improving the current drivers and adding more. Currently we are focused on upgrading the Neo4j driver to support the latest version

@mingfang
Copy link
Contributor

I'm stuck with my ArangoDB implementation.
It's not able to even get pass initialization.
The SchemaService creates a bunch of nodes during initialization but it apparently is not creating all the relationships.
I set a breakpoint in Node.createRelationshipTo() and it's only called a handful of time.
Also my RelationshipIndex is not called at all.
Does Structr expect "implicit" relationships?

@mingfang
Copy link
Contributor

Can someone please explain how relationships are created?
In particular, in here https://github.com/structr/structr/blob/master/structr-core/src/main/java/org/structr/schema/export/StructrTypeDefinition.java#L1067

I see that schemaNodes are created then followed by schema properties created, but I don't see relationships being created for them.

@mingfang
Copy link
Contributor

NVM I figured it out.

@mingfang
Copy link
Contributor

I'm happy to report that I've successfully gotten Structr to work with ArangoDb ~90% of time.
There are a couple of neo4j specific unit tests are failing.
Also there are neo4j specific UI components that would need to change.
I'm sure to find more things broken as I use it.

@amorgner
Copy link
Member

amorgner commented Dec 1, 2020

Hi @mingfang, sounds really great what you have achieved. Sorry for the late answer, we were pretty busy with the release of 3.6.0 and 3.6.1.

We have put support for other databases on hold until GQL is supported as a new standard by many vendors, but of course we want to support your efforts on ArangoDB support. If you need help on specific topics, please don't hesitate to ask, or just submit a PR.

By the way, really impressive what you have done regarding the partial compilation. We are currently reviewing your PR and hopefully we can merge it.

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

No branches or pull requests

7 participants