Just trying to understand appropriate use cases for Neo4j. Any general comments about the kinds of use cases that are / not good for Neo4j would be helpful.
Is Neo4j intended to be used as an operational data store? Would it be common to sync a graph in Neo4j with an operational data store on a batch or near real-time basis? Or is it intended to be used more tactically as an analytical platform where you load a specific data set of interest, run some queries and analytics, and then decommission that particular graph? All are of interest, but would be helpful to understand the intent of the Neo4j designers and avoid doing things that are really not intended or well supported. No product is the right answer for everything...
Here are a couple scenarios we have. If these are not anti-patterns for Neo4j in the first place, what would generally be the best way to accomplish these operations in Neo4j?
#1 - Sync with operational data store in batch
We have processes that run over night that generate sizable batches of data representing new objects and relationships.
For example, a batch of committed orders for existing customers might be generated. I think that would require creating new Committed Order nodes and linking them to existing Customer nodes. For the sake of the example, let's say there could be 10,000 orders in a batch that may correlate to 3,000+ customers.
Obviously another related scenario would be orders for new customers in which case the Customer nodes would have to be created first and then linked to the orders.
#2 - Sync with operational data store in near real time
We have transactions that produce streams of events that might cause creation of new nodes or relationships. For the sake of understanding Neo4j, let's say the scenario is 3,000 events per minute each requiring the creation of a new node and a relationship between that new node and an existing node.
Again, aside from saying whether these are appropriate uses of Neo4j, please comment on how good approaches for each so we can try them out as experiments. Thanks!