The relational data model has been around for a long time. But since then, many other data formats like JSON, time series, blobs etc. have become widespread. While a RDBMS may support these data types as add-ons, they are not first class citizens in terms of querying and indexing. Modern web applications are increasingly demanding in terms of scalability, performance and cost and most relational offerings struggle with these demands.
The proliferation of NoSQL
NoSQL arrived about eight years ago as an alternative. Modern applications need different data models with different storage requirements. It is quite common nowadays to have multiple databases in the backend. Polyglot persistence means that you have to manage multiple databases, which can sometimes lead to complexity in development and operations.
A multi-model database is fundamentally a single backend that can support multiple data models. It does so by mapping documents, graphs and tables to a collection of keys and values. This provides the flexibility to choose the best data model as per the needs with a single storage. Support for ACID transactions allow keeping data consistent across all the data models. This makes them incredibly powerful.
This may very well prove to be the future of databases – ACID compliant, multi-model and scalable – the best of both worlds.
Senior Software Engineer @ Zapcom Group