As with developing against embedded Neo4j, we’ll have to use a JVM-based lan‐guage.
We can do arbitrarily complex (and dangerous) things inside a server extension. We need to monitor garbage collection behaviors to ensure that we don’t intro‐duce any untoward side effects.
Buffer writes using queues
In high write load scenarios, we can use queues to buffer writes and regulate load. With this strategy, writes to the cluster are buffered in a queue. A worker then polls the queue and executes batches of writes against the database. Not only does this reg‐ulate write traffic, but it reduces contention and enables us to pause write operations without refusing client requests during maintenance periods.
When using a clustered graph database, we should consider load balancing traffic across the cluster to help maximize throughput and reduce latency. Neo4j doesn’t include a native load balancer, relying instead on the load-balancing capabilities of the network infrastructure.
Separate read traffic from write traffic
Load balancers can poll this URI at intervals to determine where to route traffic.