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

