Description
With its own v2, Neo4j is now pretty firmly Cypher-first. It'd be great to update this driver's design and API to reflect and optimize for that, too.
E.g. people frequently request a method to add labels to a node. But since that's typically done at creation time, it's better to do that in the create transaction directly. Neo4j's REST API doesn't support that, but Cypher does.
There are still some things that are only accessible via the REST API today, so this driver would still need to support those things. E.g. query all labels; write to legacy indexes (needed for fulltext search); and soon, manage authentication.
Big-picture: does it make sense to have an object-oriented design anymore? Or should the driver really be pretty functional now — stateless, just like HTTP/REST?
Opening this issue to discuss all of these things.