Open robertoandrade opened 7 years ago
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
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/
^ yes that sounds very interesting
@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?
I'm interested in using Structr with ArangoDB https://www.arangodb.com
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
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?
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.
NVM I figured it out.
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.
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.
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).