Selecting the Best Database for Your System Design Interview
Now a days, you can find a large number of database technologies. Having such a large number of products and choices means having more trade-off decisions to make. Given that each database product is optimized for certain trade-offs, it rests on the software architects to pick the appropriate database with these trade-offs in mind as it relates to the requirements of their service.
Choosing the most appropriate database based on the requirements of your service is the one most important architectural and system design decisions because later if you find that the selected database is not appropriate for all your requirements then migrating to another database is usually very costly and risky process.
Criteria for choosing a database
Choosing an appropriate database is not based on a simple decision tree where you can just decide simply that if we have structured data then we will use relational database; if we have a semi-structured or unstructured data we will use maybe something like NoSQL. Also, it is not as simple as saying that since we need ACID requirements we will choose relational database and if we don’t need ACID requirements and we can live with eventual consistency let’s choose a NoSQL database.