It’s been a decade-plus of the Not-Only-SQL (NoSQL) movement where a large variety of specialized database platforms have been developed and sold. It seems that there are so many different platforms for data stores that you can find one for whatever specialized type of data you are working with. However, is that what people are doing to store data in their applications?
I saw this piece on the return to the general-purpose database, postulating that a lot of the NoSQL database platforms have added additional capabilities that make them less specialized and more generalized. I’ve seen some of this, just as many relational platforms have added features that compete with one of the NoSQL classes of databases. The NoSQL datastores might be adding SQL-like features because some of these platforms are too specialized, and the vendors have decided they need to cover a slightly wider set of use cases.
It also could be that some of the features of the relational database, which are certainly a general-purpose data store, are demanded by customers. I personally think that many problems are solved well by the RDBMSes out there, and if you need something specific, then add on a NoSQL document, graph, time-series, or other type of database for some part of your application.
A lot of organizations have moved to using multiple data stores in applications. I see it more and more from customers I deal with, often because there is a specialized need, like Redis for caching, that just outperforms the main database for a certain function. As long as it’s easy to integrate, why not use a second database platform in your application?
I don’t know that you want to keep adding specialized systems, however. As the article notes: “the overhead today of having to learn and interact with multiple databases has become more burden than boon.” That can certainly be the case when there are a lot of platforms and your staff changes on a regular basis. We’ve seen this become a burden when there are too many versions of a database platform. Supporting these is hard and learning about all the features is a challenge for developers. Building expertise in many areas is sometimes very difficult for an organization.
My guess is that the future will continue to be applications that use one data store, but the trend is away from this. Especially as more organizations start to use the cloud, I suspect a lot of companies will use a specialized data store for some part of their data. They’ll also be more likely to use a second platform for a data warehouse or analysis platform. With cloud vendors building easier data transfer capabilities, like Synapse Link, I do expect more customers to take advantage of these and use a second, specialized platform where it makes sense.
I like the idea of specialized platforms and systems. I do think that there are some problems that are not well suited to being solved by relational structures. However, I also think that for a lot of critical transactional systems, it’s hard to get away from a relational store.