Showing results for 
Search instead for 
Did you mean: 

Head's Up! Site migration is underway. Phase 2: migrate recent content

Is Neo4J the right tool to managing software version compatibility and interoperability?


I am trying to determine if a graphing database like Neo4j would be useful for the following:

I have created a standard SQL database to manage tested relationships between software versions. The system works by using a recursive process to test the versions of Product A to Product B to determine if a tested compatibility exists. This is simple to do if there are only 2 products. If however as is the case with many systems there may be 10 or more different software components to test together as a group. Tested relationships must be satisfied for all items.

An example may help. If there are 3 products A, B, and C each having many versions then a solution may be Product A, version 10 is tested against Product B.v20, etc.. Not all products are tested against all. In this example A is tested to B, B is tested to C and C is tested to A. The complete solution may be:

A.v10 -> B.v20, B.v20 -> C.v30, C.v30 -> A.v10

There may be many tested relationships between any two products, but for all to be compatible, all items as a set must be tested as compatible.

So... What I am asking, would Neo4J would be applicable this type of data relationships. If so, how would I start?

Thank you for your time.
Alex Lindberg



Yes, this would be basically just managing a dependency graph, and you already know the starting point I think. You have a bunch of pair-wise support relationships:


You would load this into a graph as a bunch of single relationships like this:

(:Product { name: "a", version: "VersionA" })-[:TESTED_AGAINST]->(:Product { name: "b", version: "VersionB" })

You'd start by experimenting with dumping your data to CSV, and using LOAD CSV to put a sample of it into Neo4j, and then exploring what queries you might run against it using Cypher from there.

Nodes 2022
NODES 2022, Neo4j Online Education Summit

All the sessions of the conference are now available online