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

Neo4j Connector #1646

Open
marktani opened this Issue Jan 16, 2018 · 15 comments

Comments

Projects
None yet
@marktani
Copy link
Contributor

marktani commented Jan 16, 2018

This feature requests serves as a central place to discuss development and progress for the Neo4j connector.

@samueledirito

This comment has been minimized.

Copy link

samueledirito commented Jan 17, 2018

I would like to contribute. Do you have any guideline to follow? TIA

@sorenbs

This comment has been minimized.

Copy link
Member

sorenbs commented Jan 17, 2018

@samueledirito It would be great to collaborate on this.

  • The first step is to map out the kind of queries a Neo4j Connector should support.
  • The next step would be to plan in detail whet the resulting API should be. Our current API is designed to expose the power of relational databases, and I'm not sure trying to fit a graph database to the same API is a good idea.

Feel free to dump your thoughts (well formed or not) in this thread so we can get the conversation going.

@d3r1v3d

This comment has been minimized.

Copy link

d3r1v3d commented Jan 17, 2018

Would really like to use this in an enterprise application my team is building. Willing to help in any way to push this forward.

@rohanray

This comment has been minimized.

Copy link

rohanray commented Jan 18, 2018

https://github.com/neo4j-graphql/neo4j-graphql-js is a nice place to brainstorm initial design

@sorenbs

This comment has been minimized.

Copy link
Member

sorenbs commented Jan 28, 2018

Thanks @d3r1v3d!

At this stage the best way to help is to contribute the following two things (either here or as a slack dm if it is confidential)

  1. Very concrete use case description.
  2. Initial suggestion for syntax for SDL and the generated GrpahQL API.

When we prioritise the connectors to build community validation plays a big role so providing this will ensure that the neo4j connector will get build sooner.

@aoighost

This comment has been minimized.

Copy link

aoighost commented Jan 28, 2018

If I may ask, since I'm interested as well, what are you looking for with regards to syntax for SDL? I'd love to use Prisma but need neo4j out of the box (and would prefer to use prisma + stitching + gramps) but need to know more about what is needed to get this off the ground. I'll probably have to backport to Prisma when it's time, but that will hopefully not be too hard given the architecture I've designed for my application.

@sorenbs

This comment has been minimized.

Copy link
Member

sorenbs commented Jan 28, 2018

@aoighost

Neo4J is untyped and GraphQL is typed. We need to decide how the developer should specify the mapping. Prismas MySQL connector generates a powerful CRUD API based on a simple SDL type definition. neo4j-graphql takes a similar approach in addition to allowing custom resolvers implemented by Cypher queries.

I'm interested to understand if this is the best approach or if there is some other model that would be better. If this is the best approach, then we need to map out the SDL syntax required to put type definitions on all aspects of the Graph.

Neo4j has nodes and edges. I'm not quite sure, but I think edges can have a direction as well as properties, so the SDL must be expressive enough to handle this.

It might very well be that Prisma does not need to support all the features of Neo4j to be useful. That's why I would like to see some very concrete use case descriptions, including the schema represented in a mock SDL as well as the queries required to implement the use case.

@jexp

This comment has been minimized.

Copy link

jexp commented Jan 29, 2018

In neo4j-graphql we use the GraphQL schema as the definitive type mapping

(optionally it can also be generated from the existing data in the graph)

The graphql schema + your directives (like @relation(with direction), @isunique) are already enough to represent Neo4j's "types".
Multiple labels can be reprented by interfaces or by union types.

@aoighost

This comment has been minimized.

Copy link

aoighost commented Feb 1, 2018

Edges with direction are supported in neo4j. Use case for what I'm doing is the following:
Application pushes and pulls data from nodes, connected by edges. Looks for connected nodes on edges to see if things are related as well as to a certain depth. Also supported is pulling all of N type nodes, or E type edges. Cypher, mutations, and subscriptions would all be useful.

That's pretty much all I need. Read/Write including seeing what nodes and edges are related to n depth along with subscriptions and mutations.

Pretty sure @jexp is right on the ball with this.

@GBR-422777

This comment has been minimized.

Copy link

GBR-422777 commented Sep 19, 2018

I am willing to help on this too, any clue when the development might start? what is still needed?

@appinteractive

This comment has been minimized.

Copy link

appinteractive commented Oct 5, 2018

I'm really waiting for Neo4j support! GraphQL + Graph DB's is like a dream comes true! How far is the process on this?

@ivan-kleshnin

This comment has been minimized.

Copy link

ivan-kleshnin commented Oct 23, 2018

I'm really waiting for Neo4j support! GraphQL + Graph DB's is like a dream comes true!

If all databases are reduced to a lowest common denominator and you are unable to use database specific features (including Cypher language) – what's the point? Really, I'm asking with no irony, – what's the difference between Neo4j and AnySQL in this case?

Edit: I missed the point that Prisma.io doesn't own/host your database. So the question is canceled.

@victorleme

This comment has been minimized.

Copy link

victorleme commented Nov 16, 2018

How is going this?
I want to help

@stale

This comment has been minimized.

Copy link

stale bot commented Jan 8, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 10 days if no further activity occurs. Thank you for your contributions.

@appinteractive

This comment has been minimized.

Copy link

appinteractive commented Feb 10, 2019

Ping

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