cancel
Showing results for 
Search instead for 
Did you mean: 

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

alindberg
Node

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

1 REPLY 1

david_allen
Neo4j
Neo4j

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:

ProductA,VersionA,ProductB,VersionB

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
NODES 2022, Neo4j Online Education Summit

On November 16 and 17 for 24 hours across all timezones, you’ll learn about best practices for beginners and experts alike.