Database Reference
In-Depth Information
Which is best?
It depends!!! Yes, that's true, it all depends.
Both the options have their own advantages and the choice/applicability of the deployment
model will largely depend upon your vision, use case, and the environment. Let's discuss
each of the options, their advantages and disadvantages, and then we will talk about the
best deployment model.
Let's start describing few of the advantages of deploying Neo4j as a REST-based server:
• It enables multiple applications (deployed in separate contexts) to perform CRUD
operations over a single Neo4j database
• It provides scalability and High Availability (with the Enterprise Edition)
• It provides more than one language or client for performing CRUD operations
• It provides an administrator console and a browser to browse data
Wow!!! It's nice but that's not all. Let's discuss some of the disadvantages of the REST-
based server:
• It takes a considerable amount of time to develop an application. Lots of code
needs to be written for developing small-to-medium-sized applications.
• It does not provide performance (compared to embedded), as the request is over
HTTP.
We have not concluded yet. Let's now talk about the embedded server, which has the fol-
lowing advantages:
• It is robust and well-defined and well-documented Java APIs are available for per-
forming CRUD and traversals over the graph database
• It is easy to manage as it is only a single process that needs to be monitored and
managed
• It provides maximum performance, as calls are local and not remote
It's nice too, but it also has its downside. Let's discuss some of the disadvantages of the em-
bedded server:
• Neo4j database cannot be shared or used by multiple clients, which limits the
scalability
• There is no admin console available
• It only supports JVM-based languages (such as Java or Scala)
Search WWH ::




Custom Search