I need a way to load graphs in a structured way that I can perform queries in a query language, without the usage of an "external database", in the sense of a separate process, with an endpoint to perform requests, etc.
Just to ensure I'm not falling in the XY problem, the problem I'm trying to solve is to make a service that:
- Receives a graph from a client
- Receives a rule for this graph, meaning a set of assertions over the structure of this graph, such as "at least one node of type A". This rule can be a Cypher of Gremlin query, for example.
- Run the rule over the graph
- Erase the "database". The graph exists just for the purpose to run the rule.
The idea of a database is because the rule must be human-readable, so having languages like Cypher or Gremlin, that are already consolidated would be easier than creating one.
I've considered using:
- AWS Neptune
- Neo4j
- Apache TinkerPop
- RedisGraph
But all of them need a separate process that exposes an endpoint, so the graph will not be a "runtime" graph.