Driver terminology

This section lists the relevant terminology related to Neo4j drivers.

access mode

The mode in which a transaction is executed, either read or write.

acquire (connection)

To borrow a driver connection that is not currently in use from a connection pool.


A single query which is wrapped in a transaction and committed automatically.


Bolt is a Neo4j proprietary, binary protocol used for communication between client applications and database servers. Bolt is versioned independently from the database and the drivers.

Bolt Routing Protocol

The steps required for a driver to obtain a routing table from a cluster member.

Bolt server

A Neo4j instance that can accept incoming Bolt connections.


A marker for a point in the transactional history of Neo4j.

causal chaining

A mechanism to ensure that the transactions carried out in a session are executed in order, even when each transaction may be carried out on different cluster members.

client application

A piece of software that interacts with a database server via a driver.


A persistent communication channel between a client application and a database server.

connection pool

A set of connections maintained for quick access, that can be acquired and released as required.

driver (object)

A globally accessible controller for all database access.

driver (package)

A software library that provides access to Neo4j from a particular programming language. The Neo4j drivers implement the Bolt protocol.

query result

The stream of records that are returned on execution of a query.

release (connection)

To return a connection back into a connection pool after use.

routing driver

A driver that can route traffic to multiple members of a cluster using the routing protocol.

routing table

A set of server addresses that identify cluster members associated with roles.

server address

A combination of host name and port or IP address and port that targets a server.


A causally linked sequence of transactions.

thread safety



A transaction comprises a unit of work performed against a database. It is treated in a coherent and reliable way, independent of other transactions. A transaction, by definition, must be atomic, consistent, isolated, and durable.

transaction function

The method of grouping a number of queries together which, when run in a session, are retried on failure.

transaction manager

The component/code responsible for deciding what to do if a transaction fails, i.e to retry, give up or do something else.