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

Consider update to next main version of neo4j-php-client #62

Open
stefanak-michal opened this issue Nov 15, 2024 · 3 comments
Open

Consider update to next main version of neo4j-php-client #62

stefanak-michal opened this issue Nov 15, 2024 · 3 comments

Comments

@stefanak-michal
Copy link

I noticed your repo is active while original one isn't. So I would like to reach out here.

This project is currently using https://github.com/neo4j-php/neo4j-php-client version 2. Version 3 is out for some time (thanks php graph group) and it contains a lot of improvements, including using latest version of bolt protocol library https://github.com/neo4j-php/Bolt. That is very important because it allows to connect to latest Neo4j versions. Moving to next main version of neo4j-php-client gives you big leap in bolt library version from 4 to 7 where was a huge step forward. Would you consider update towards this dependency?

Anybody who is willing to help in the tech stack php/graph databases, or you are open for discussion you can reach out on https://discord.gg/WeHFjrnn

Btw low level bolt library allows you to connect to memgraph or amazon neptune, not only neo4j. But I understand that is different story.

@joseraul
Copy link

Hi @stefanak-michal! Thanks for the heads-up.

I’ll create a task in our backlog, and we’ll take a look.
Do you know if the public API differs significantly between neo4j-php-client and Bolt?

Cheers!

@stefanak-michal
Copy link
Author

If you mean with API set of classes and methods to work with then neo4j-php-client and bolt are significantly different.

  • neo4j-php-client is enterprise level which contains set of extra features available only in Neo4j ecosystem and it follows approach of other official Neo4j drivers (driver -> session -> transaction -> statement -> result)
  • Bolt is low level and it's written to follow Bolt specification https://neo4j.com/docs/bolt/current/bolt/ (connection -> protocol -> bolt message -> response) you can check code example here https://github.com/neo4j-php/Bolt?tab=readme-ov-file#example
  • The difference is also how you get the response, it is more raw in bolt than from neo4j-php-client

Of course it has advantages and disadvanteges, for example:

  • using neo4j-php-client you have access to features you don't have to develop yourself, if you need them (connection pooling, handling cluster connection with routing, bookmarks manager, error recovery and even more)
  • using neo4j-php-client you are protected from major change in low level library (bolt) ..but bolt library version 7 is very stable and mature, and so far I'm not aware of any planned bigger changes in bolt specification which would affect that
  • using bolt you have access to any database which adopted bolt specification (I know about Memgraph, Amazon Neptune, ONgDB and DozerDB)
  • using bolt library you will get update to latest Neo4j version faster

I hope this will provide some insight. I'm open for more questions.

@joseraul
Copy link

thanks! we will take a look

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

No branches or pull requests

2 participants