I have a project that I am working on that I am trying to go from using a local instance of Neo4j to being hosted on our intranet, but I am having some trouble coming up with the best solution. The tool is pretty simple, it creates a relationship graph between FIELDs and TRIGGERs on different instances of our program. Basically a TRIGGER can modify a FIELD and a FIELD can activate a TRIGGER. I then use the Neo4j DB is then used to analyse the relationships between these events and look for circular paths, chaining paths, and excessive branching in paths. It has been very useful for me. I now want to bring the tool to my team, but I am having some issues with coming up with the best way to do so without requiring them to install Neo4j on their individual computers.
I have been able to create a site that uses Node.js to access and visualize the DB, but I am running into an issue with being able to give each user their own DB so that they can look at different Data Sources without interference. Each user is going to be using multiple unique data sources, so they need to be able to delete and recreate their individual DB, making using a shared DB not ideal. This will also be running on a very small, and really under-powered, local server (really just a repurposed laptop).
I'm not sure what the best path would be here. Would my best choice be to create a new DB for each new user and like their queries to that DB? Would it be better to spin up a destructible instance of Neo4J in something like Docker? How would I go about Programatically creating a new DB? Can Neo4j support dozens of DB at the same time if they are smallish (5000 nodes/8000 relationships max)? What Neo4j product would I need for this?
Thank you for any assistance,
Mike