SQL or a graph database to build a social network with recommender?

1 points by jkmcdonald ↗ HN
graph databases - fit the use case of a social network - databases like neo4j have real-time recommendation capability - but a lot of them are not open source and I don't wanna get locked in

SQL - even meta uses mysql as their primary DB (but I know they have a custom graph DB built on top) - ACID compliance - have more resources - but if I use a SQL database I may need to build a recommendation system separately

2 comments

[ 3.5 ms ] story [ 15.3 ms ] thread
It doesn't matter. Use the one you understand better. Both types of databases have been used to build social networks with many millions of users.

Chances are ~0% that you'll ever have enough users to care which one you chose, and if you get to that point, you'll be able to raise money to switch.

Your main problem building a social network is acquiring usere, not technology.

A highly capable (open source) graph computing stack would be JanusGraph combined with Apache Cassandra (or Apache HBase).

JanusGraph is a TinkerPop provider meaning that the graph can be queried with Gremlin, a powerful graph traversal language combined with a choice of scalable, distibuted backends/persistence stores (as mentioned, Apache Cassandra or Apache HBase).

Take a closer look at both the semantic web ecosystem (i.e., RDF/SPARQL/OWL) and the labeled property graph ecosystem (Neo4J, TinkerPop, etcetera) for both open and closed source alternatives.

You could even go down the route of multi-model stacks like ArcadeDB.

Just trying to provide a quick overview of some of your options :)

Links:

- https://tinkerpop.apache.org/ - https://cassandra.apache.org/_/index.html - https://hbase.apache.org/ - https://tinkerpop.apache.org/docs/3.5.3/reference/ - https://arcadedb.com/