Hello All, Looking for some advices

Hello All,
I am from Austin TX (USA) and a SW architect+developer using distributed storage, distributed computing and messaging/stream processing etc.. But I am new to Neo4j, Graph DB and Graph Theories.
We are trying to evaluate and find a suitable graph database to hold highly relational and interconnected configuration details of complex systems (electrical/weather-control/others) in large buildings, factories, solar plants etc...

We are currently exploring to find a suitable graph db which will suits to our needs. Will provide more details and hoping to get some info which will help us.

Hi there, I have used other DB's and would say that Neo4j is the best. I know that may be controversial our there (maybe not in this forum) but here's why I think so:

  • Documentation is clear
  • Support from the Community is excellent,
  • Cypher will save you hundreds of lines of code
  • I have been building analytics apps, using ReactJS and with a NodeJS server. The BOLT driver is a breeze to work with, very fast
  • Performance is normally where another pick on Neo4j, don't believe everything you read, test. There are always ways to optimize, as with every system there are design compromises in neo4j! you need to know them and avoid pitfalls.

Let me know if you would like more detailed advice via: fred@ownyx.io


1 Like

Greetings Fred,

Greatly appreciate your response and valuable information.
I am going over all the documentation of Neo4j and graph-academy online training. We are excited to know how easy it will be to implement our configurations as interconnected nodes and their relationships in Neo4j.

One question I need to ask though, we have some unique requirement. We want to visualize changes occurred over the period of time in an interconnected graph. Say given a period of time (6 months for example) our original graph changes every day. New nodes are added relationships between nodes changes involving newly added nodes and relations to old nodes are dropped or marked as invalid. [example a firmware upgrade to multiple devices will reshape the entire graph].

Now our requirement is, we want to visualize all these changes over a period of time in a time-series fashion. Something like a time machine, going back to history in a step by step fashion.

Have you faced these types of requirement(s) before using graph db? If so, can you throw some light how we can utilize some features of a graph db to query history of changes over a period of time? Or any idea how this could be implemented using other storage system along with Neo4j etc..

Thank you in advance
Amit B

Maybe you can just for every created node and relationship have a property "createdAt", and then visualize based on it.

Thanks, yes we are looking at various options. Including adding flags and time-stamp label/properties to nodes and/or relationships. Another competing Idea is to generate events/tagged-events whenever a change takes place and save it in a distributed time-series database (like Cassandra). Visualize changes from event logs not from current state in Neo4j graph configuration. in Neo4j store only current state not history. No decision has been made we are still evaluating other ideas.