-
A Graph DB that can handle around 100k-1M nodes
-
We need nodes that can have different types and attributes
-
We need edges (associations between nodes) that also can have different types and attributes
-
Transactional support (all or nothing commits to DB)
-
History of changes to elements (add/remove element, add/remove edge, add/remove/modification of attribute)
- time-span that during the element existed (could either be supported directly by Graph DB or we created layer on top)
Bonus points:
-
Support for some smart graph query language that can be used find nodes
-
To be used for reporting and queries in program
-
SPARQL might be a good if they support. Too complicated query language?
-
-
Support for inheritance between node and edge types (to enable query graph for a more generic element type and then also get the inherited element types)
-
Replication and failover to secondary DB, or backup to a central DB
Neo4j supports everything that you need, but it is not free for commercial projects;