Search code examples
databasegraphdatabase-designneo4jgraph-databases

Social network with video chat feature using neo4j


I am using neo4j to build a social network web app where users that are friends can communicate with each other through video calls. Each participating user will also be able to submit a review at the end of each call. I structured the graph such that two (:User) nodes can have a [:FRIEND] relationship between each other. For a particular video call, I am planning on creating a (:VideoCall) node (which contains properties such as roomId) and a [:PARTICIPANT] relationship from the (:VideoCall) node to each participating (:User) node. The [:PARTICIPANT] relationship will have a rating property containing the user's review for that video call. Would this model be performant if there are a large number of user and video call nodes? Is there a better way to design the database for this type of feature?


Solution

  • Yes it should be performing well. Just make sure you have properties that you want to look up by indexed and constraints in place

    What kind of use cases would you want to cover besides regular ones?