question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Support Bolt for Neo4j 3.0

See original GitHub issue

Right, 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:

  1. 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.
  2. 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 an IBoltGraphClient - 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:closed
  • Created 8 years ago
  • Reactions:1
  • Comments:35 (32 by maintainers)

github_iconTop GitHub Comments

2reactions
cskardoncommented, May 3, 2016

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 read new GraphClient(new Uri("bolt://localhost/")) - everything else should stay the same.

0reactions
cskardoncommented, Apr 5, 2022

Good call

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found