A coworker shared with me recently that a customer is wholly investing in adopting non-relational datastores.
“Is NoSQL taking over?” they asked.
In my experience, organizations who go “all in” on non-relational databases end up with a mixed environment. In other words, they continue heavily using relational databases. They realize that they need to invest in doing well with every kind of database they use for mission-critical data.
At the beginning of the journey…
Key team members and leaders get on board with investing heavily in working with non-relational datastores. Typically there are a few headline use cases where non-relational databases fit really well.
This gives a feeling that these types of databases will work well for every system.
Over time, some projects succeed and some fail
Generally, teams do find use cases where the non-relational databases work very well.
They also find plenty of cases where moving to a non-relational datastore adds complexity and reliability goes down.
Relational databases are good at, well, relations between data
Relational databases provide well-documented, simple ways to efficiently store data and to join data back together to return meaningful results. It’s relatively quick and efficient to get a project off the ground using a relational datastore. Modern hardware and cloud computing patterns also make this more scalable than ever.
But this doesn’t fit every use case.
Sometimes it is better to have a database designed specifically to store and retrieve documents. Or to use specialized methods to store and query complex relationships using graphs. Or to use a simple key-value mechanism.
Because different types of databases are suitable for different use cases…
Nearly every larger organization ends up with a mixed environment which includes plenty of relational databases. After the romance period is over, they realize they need to invest in processes, people, and tools for all of the technology in play.