How does Neo4J 3.x treat parallel requests?

Suppose I have several instances of my app, which is sending parallel data-heavy transactions to Neo4J 3.x.

How does Neo4J treat this sort of requests? Will it put them into a queue or will they be executed in parallel? What changes when these requests go to the same cluster instance?

It's pretty much similar to any transaction based databases.

The read requests will get executed in parallel. The write requests try to get executed in parallel and if it needs to acquire a lock and it is held by another transaction it will wait for the other transaction to complete.

in cluster environment there is only one leader. So all writes are sent to to only that instance when bolt+routing or neo4j protocol is used.The read requests can go to any of the instances.

1 Like