So I'm in the process of writing a Node-backed server, and one major part of the application is the Social Network Platform. I don't plan on using MySQL, even though it's reliable.
After some research, I stumbled upon multiple articles stating why you should use one over the other or with the other. It does make sense that using a graph database is the best option, better than a simple RDBMS/conventional NoSQL.
As of now, I've got these options with me
- MongoDB for document storage, and using
mongo-connector
in collaboration with neo4j for storing relationships, likes and stuff. Looks good to me, as some part of the application has already been developed with mongo, wouldn't have to rewrite everything. - OrientDB as a whole package from the ground up
- Gremlin
- Apache Cassandra(No idea how this works, any help could save me some time :D)
I'll have you know that the social network relationship is but a part of other functions the application is supposed to execute, the other one being a chat interface, along with real-time mapping.
Any advice would be much appreciated!
You are on the right track, you will see the improvements over a mySQL-ilike database after you write a few dozens queries. Do not jump on Cassandra unless you have a team of devops and TB of data, is a big gun for big problems.
Few examples:
DGraph - written in Go and fast
Neo4J - big community
OrientDB - SQL like queries.
Here is a comparison between the 3 of them db-engines.com/en/system/Dgraph%3B...
and a list of popularity db-engines.com/en/ranking/graph+dbms
I would prefer a cloud-based managed DB in the first iterations because I don't want to handle the DevOps but nowadays all of them have docker images which makes them very easy to install.