TrustRadius: an HG Insights company

Neo4j

Score8.8 out of 10

37 Reviews and Ratings

What is Neo4j?

Neo4j is an open source embeddable graph database developed by Neo Technologies based in San Mateo, California with an office in Sweden.

A go-to solution if a graph db is actually needed

Use Cases and Deployment Scope

We needed a graph database to record relations between different corporate entities. We want to track relations like beneficial owners, subsidiaries, related parties, etc. There could be many edges and the edges needed to record various metadata about the relations like the date that relation became significant. Importantly, we wanted to be able to run relational queries that would be tricky with postgres.

Pros

  • Easy to query deep paths (for Ultimate Beneficial Owner)
  • Storing metadata for edges
  • Easy detection of obscurely connected entities

Cons

  • We felt we could only scale easily vertically
  • We felt limited by Neo4j's hosted machine options
  • Limited constraints to enforce relational patterns

Return on Investment

  • Positive: being able to provide new products/insights that weren't really possible before
  • Negative: did lead to some complexity managing multiple DBs as opposed to one
  • Positive: saving a ton of time for our data science team who were manually doing queries/analysis to answer questions that could be easily solved with a 1 line cypher query

Usability

Alternatives Considered

PostgreSQL

Look in a different way if you need scale - this is not suitable

Use Cases and Deployment Scope

Scaling is a huge issue in Neo4j. Clusters are supposed to allow horizontal scaling and they say they support billions of nodes, but in fact, a database with ~600 mil nodes and 1.5TB in size is barely manageable. Backups slow, count() times out, server restart will take hours (!!!!). And 2GB hard transaction limit is another hard candy of a clustered mode, requiring to use things like apoc.iterate for long updates, making them impossible to rollback in case something goes wrong (apoc.iterate commits results on the go).

So - if you need scaling, think twice.

Pros

  • Graph traverse.

Cons

  • Scaling and clustering.
  • Transactions limitations.
  • Performance on millions of data.
  • Backup and restore.

Most Important Features

  • Graph traverse.

Return on Investment

  • Positive: Less complex queries on graph structures, than in relational databases.
  • Negative: maintenance is a huge deal, things doesn't work and break, requiring lengthy restore operations.

To Neo4J or not to Neo4J? Neo4J all the way!

Pros

  • Show relationships between different data points
  • Visualize network maps
  • Show stronger influencers

Cons

  • Be quicker at processing data
  • Have less lagging when interacting with the network map
  • Be able share with other users on a server

Most Important Features

  • Ability to illustrate networks
  • Page rank algorithm to explore influence
  • Explore relationships

Return on Investment

  • Show insights where conventional methods failed to do so
  • Point out main customers or touch points that require more attention
  • Work towards a more networked frame of mind

Other Software Used

Tableau Desktop, Jupyter Notebook, Oracle SQL Developer

Neo4j, best graph database out there!

Pros

  • Easy way to query data.
  • Easy way to insert and store relationships.
  • Easy to visualize data in Neo4j browser.
  • Easy to learn.

Cons

  • Sometimes hard to visualize complex data analyses.
  • Tough to see space used.
  • Tough to allocate memory or other configurations.

Return on Investment

  • Cheaper than going with other solutions.
  • Quicker development time.
  • Fast customer support.

Other Software Used

MongoDB Atlas, Amazon Relational Database Service

Best graph database with simple REST API and rich querying capabilities!

Pros

  • 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.

Cons

  • Support for language based libraries. Currently, Neo4J only supports Java-based libraries. We used node and found issues with documentation and support for this library. It helps if Neo4J supports libraries in popular languages.
  • Support for triggers, that's one of the neat features of Postgres and other traditional SQL databases.
  • Support for indexes for data lookup. Looking up multiple nodes information using Neo4J is not very efficient, it is more optimized for looking up relationships between nodes. So adding that support would be very useful.

Return on Investment

  • Very positive ROI, we moved legacy data from Oracle into Neo4J after considering query needs and the performance of the lookups increased 4x. Apart from the performance, the code is a lot concise and clean without needing to write 10 joins to look up 2 relationships.
  • Neo4J's licensing model allowed us to experiment with their community edition for free, which is amazing. They provide full support for Community edition and if your data does not warrant Hot backups and Master/Slave configurations, you might as well stick to the Community edition in Prod.
  • Overall, it was a very pleasant experience working with Neo4J. Would highly recommend it.

Other Software Used

Amazon Relational Database Service, Amazon CloudWatch, Amazon Elastic Compute Cloud (EC2), Apache Kafka, PostgreSQL