NOSQL or RDBMS? Is that the right question to ask?

Summary

When choosing a datastore for your next application or service, one may land on a choice of whether to use an RDBMS or NOSQL. The fact of the matter is, design choices are never binary and must always take into account trade offs. The right question to ask then isn't whether you need MongoDB or SQL Server, rather ask (not exhaustive):

  • What type of data would I need to store?
  • Is my application read heavy or write heavy or a mix of both?
  • How will my data and schema evolve?
  • What scale will my app need and how will this change in the foreseeable future?
  • Would you need ACID compliant database?
  • Would you need transactions?

Common myths

  • RDBMS databases do not scale
  • NOSQL databases scale in all use cases
  • Changing schema in relational databases is prohibitively hard
  • NOSQL databases do not require data/schema migration at all

Some thought provoking posts on NOSQL and RDBMS