Support Bolt for Neo4j 3.0
See original GitHub issueRight, so it’s time to consider the Bolt issue - my general feelings on this is that ideally you shouldn’t have to change your codebase - i.e. if you use IGraphClient
then that should still apply now.
Ideally I’m thinking something like:
var client = new BoltGraphClient(new Uri("bolt://localhost:7687"));
client.Connect();
client.Cypher.Match("n").Return(n => n.As<Movie>()).Results;
i.e. only change the new GraphClient
to new BoltGraphClient
.
As to how realistic this is - that’s a ‘need to investigate’ type issue.
Other questions go along with this:
- Should the Bolt bit be released as a separate nuget package? i.e.
Neo4jClient.Bolt
- I quite like this idea - it means that the current project can stay as it is - i.e. keep gremlin / rest support for those who use it (which I’d be interested to know) and if you want to use 3.0 over Bolt, you add the other package. - In terms of the Bolt implementation - one problem with IGraphClient is the bucketload of backage - in practice - you’d probably only want
.Connect()
,.Cypher
etc, would it be worth having anIBoltGraphClient
- which obviously would require code changes for existing projects, but would make the intellisense nicer.
This is a substantial change, a major version increment, so whilst we don’t want to go crazy - some breaking changes are (I think) acceptable.
Other points please chip in here, this is a question type issue - looking for feedback, ideas, etc
Issue Analytics
- State:
- Created 8 years ago
- Reactions:1
- Comments:35 (32 by maintainers)
Top Results From Across the Web
Bolt Protocol and Neo4j compatibility
This section provides an overview of Bolt Protocol and Neo4j compatibility. ... Neo4j version, Bolt 1, Bolt 2, Bolt 3, Bolt 4.0, Bolt...
Read more >Bolt Protocol documentation
Bolt Protocol — The application protocol for database queries via a database query language. Bolt Protocol and Neo4j compatibility — A compatibility matrix...
Read more >Bolting Forward: The Neo4j 3.0 Milestone 1 Release Is Here
A PHP driver with support for Bolt is being worked on by our partner GraphAware. Cypher Advances. Bolt's always-on connection is a huge ......
Read more >Bolt Protocol
Bolt is an application protocol for the execution of database queries via a database query language, such as Cypher. It is generally carried...
Read more >Bolt Protocol message specification
Version 3 of the Bolt Protocol introduces the concept of Auto-commit Transaction and Explicit Transaction. Auto-commit Transaction is the server in the ...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Not quite - Neo4jClient does support Neo4j 3.0 - what it doesn’t support is the bolt protocol. The conversion/addition plan is to make Neo4jClient support bolt, but from a user point of view - I only want one line to change, so instead of:
new GraphClient(new Uri("http://localhost.:7474/db/data"))
, I want it to readnew GraphClient(new Uri("bolt://localhost/"))
- everything else should stay the same.Good call