I am looking for a way to build a UI for maintaining a bespoke NoSQL database (which is implemented in Apache Spark on AWS, via Databricks). Our data domain model lends itself to a graph-based approach, so I would like to present data to our internal users via an interactive graph-analytic interface like Bloom. The challenge is that the users need to be able to trigger actions based on the outcome of their searches, and I don't see this functionality in any of the products I've looked at.
A use case would be illustrative: suppose the user needs to look up a subscriber and alter their contact phone number. The search stage would be straight-forward: it would land at a node that represented the "subscriber". One of the directed edges from the "subscriber" node would point to the "contacts" node, which would have zero or more child nodes; each child node would capture either a phone number, an e-mail address, a website, a fax number (yes, I know!), etc. and would have up to 5 attributes ("contactType", "contactValue", "contactPriority", etc.) .
Now comes the tricky bit... I want the user to be able to right-click on a piece of data or a node, and be given the option to enter some text into a pop-up form and submit it as a data-change event. (I actually need to cater for updates, inserts, and deletes, but the user experience will be similar.)
The data-event would not actually alter the database in real-time. Rather, it would trigger a procedure that packages a data change request and submits it to the Spark engine. Or, it could just write the data-change request to a file that gets processed daily. The hard part is how to turn the right-click event into an action: can Neo4j / Bloom support event routines? Can it write to a database other than the one that underlies the current graph (i.e. the repository of data-change requests)?