Neo4j is an open source embeddable graph database developed by Neo Technologies based in San Mateo, California with an office in Sweden.
$65
per month
MarkLogic Server
Score 9.0 out of 10
N/A
MarkLogic Server is a multi-model database that has both NoSQL and trusted enterprise data management capabilities. The vendor states it is the most secure multi-model database, and it’s deployable in any environment. They state it is an ideal database to power a data hub.
Neo4J is great for creating network graphs or illustrating how things are related. It is also good for finding individuals or things that have greater influence than others in a system. It is not appropriate if you have standard data sets that can be analyzed using conventional methods or visualized using Tableau, for example.
If you are storing META data then MarkLogic is super useful as it retrieves everything so fast, while storing the whole data shows performance issues some times. If you have legacy systems then migrating from it would really require sweat and blood, on the other hand if you are in systems like Node.js you can simply integrate two systems easily. If you don't know how in the end your your data schema will look like then it's better to make a prototype using MarkLogic.
Mature Query language, I found Cypher QL to be mature in handling all sorts of problems we throw at it. Its expressive enough to be intuitive while providing rich features for various scenarios.
Native support for REST API, that makes interacting with Neo4J intuitive and easy.
Support for Procedures in Java, procedures are custom code that could be added to the Neo4J to write custom querying of data. The best part about the procedures is it could be invoked using the REST API. This allows us to overcome any shortcomings from their Cypher query language.
Nice UI and interface for executing the Query and visualizing the response.
UI access controlled by User credentials allows for neat access controls.
Awesome free community edition for small-scale projects.
One of the hardest challenges that Neo4j had to solve was the horizontal scaling problem. I am not updated on recent developments, but at the time of my use, I couldn't find a viable solution.
Neo4j does not play with other open source APIs like Blueprint. You have to use the native Neo4j API.
There wasn't a visual tool to see your data. Of course, third party tools are always available, but I would have loved something which came with the Neo4j bundle. I love that Docker comes bundled with Kitematic, so it's not wrong to hope that Neo4j could also ship with some default visualization software.
MarkLogic still has a long way to go in fostering the developer community. Many developers are gravitating to the simple integrations and do not delve into the deeper capabilities. They have made tremendous strides in recent months and I am sure this will improve over time.
Many of the best features are left on the floor by enterprises who end up implementing MarkLogic as a data store. MarkLogic needs to help customers find ways to better leverage their investment and be more creative in how they use the product.
Licensing costs become a major hurdle for adoption. The pricing model has improved for basic implementations, but the costs seem very prohibitive for some verticals and for some of the most advanced features.
MarkLogic is expensive but solid. While we use open source for almost everything else, the backend database is too critically important. At this point, re-tooling for a different back end would take too much time to be a viable option.
Very little about it can be done better or with greater ease. Even things that seem difficult aren't really that bad. There's multiple ways to accomplish any admin task. MarkLogic requires a fraction of administrative effort that you see with enterprise RDBMS like Oracle. MarkLogic is continually improving the tools to simplify cluster configuration and maintenance.
There's always room for improvement. Some problems get solved faster than others, of course. MarkLogic's direct support is very responsive and professional. If they can't help immediately, they always have good feedback and are eager to receive information and details to work to replicate the problem. They are quick to escalate major support issues and production show-stopping problems. In addition to MarkLogic's direct support, there are several employees who are very active among the community and many questions and common issues get quick attention from helpful responses to email and StackOverflow questions.
Neo4j is a graph store and has different use cases compared to another NoSQL Document store like MongoDB. MongoDB is a bad choice when joins are common as existing operators for joining two documents (similar to tables in a relational store) as Mongo 3.5 use SQL like join algorithms which are expensive. MongoDB is a great choice when distributed schemaless rich document structures are important requirements. Cross document transaction support is not native to MongoDB yet, whereas Neo4J is ACID complaint with all its operations.
We had Fast in place when Microsoft had bought it up and was going to change / deprecate it. One of the biggest advantages of MarkLogic for search actually had to do with the rest of the content pipeline - it allowed us to have it all in one technology. On the NoSQL side, we looked at MongoDB a couple years back. At that time, MarkLogic came in stronger on indexing, transaction reliability, and DR options. For us, that was worth using a commercial product.
MarkLogic reduced the amount of time that the DevOps team needed to dedicate to database updates, as the engineering team was mostly able to easily design and maintain database upgrades without requiring specialists such as database architects on the DevOps side. This capability flowed from the product's speed and the versatility of its XQuery language and libraries.
MarkLogic required significant education and buy-in time for the engineering team.