Use only OrientDB without any RDBMS

database-designgraph-dbmsscalability

I'm struggling with this problem and I really need an advice. My project mainly needs a Social structure, users can be connected with some friendship relations, can create groups and so on. In this scenario a Graph database is a must.

However, each user also has some information that fit relational model. For example, purchases, points, historical data and so on.

At first, I thought that using two types of database could solve all my problems, so I've decided for OrientDB and MySQL. The main problem of this approach is that it's hard to mantain consistency between two databases if we are in a distributed scenario, where billion of users does operation on two databases. Moreover, MySQL as a RDBMS has some limitation for scaling.

So, I've thought: Why not use just OrientDB?

As far as I understand with its multi-model architecture and ACID transactions, I can reach the same RDBMS goal (lot of hooks), and at same time I haven't any problem with consistency. I can improve scaling problem too.

So, is it safe to use just one database, like OrientDB, to create a design like mine?

Best Answer

Any DB model can store any type of data. The trade-off is what you're prepared to do in the application and what you want the DBMS to handle for you, plus performance.

So in some ways I think it would be safer to have a single system that's good enough than several disparate systems that are individually excellent at their own part but that I have to stitch together.

Think also from a business perspective. Where are the risks and opportunities here? Are you able to charge more for this new service because of the clever way you've stitched together MySQL and Orient? Conversely, if the stitching frays is there a risk of service failure and lost revenue? If you can quantify the benefits and costs, even only in tee-shirt sizes, of both approaches I think it will help you reach a conclusion.