A Multi Model Database Ripe for Building Microservices
Databases are commonly classified by the data model they conform to. A hierarchical database would structure and approach hierarchies of data elements, a relational database would handle related data tables, a document database would handle collections of documents, and so on.
Various database models excel in different ways. Querying relations between members of a complex social network for example, can be easy and effective using a graph database, but unrealistically complicated and slow using a relational database.
Considering the abundance of tempting database services in existence then, there’s a challenge we’d be wise to address: How do we harness this diversity to our advantage? Take for instance a company that wants a document store for its orders, ACID reliability for its accounting, distributed-counters for web analytics, and would also like to provide Data subscribers with recommendations gained using graph queries.
Deploying multiple data stores to provide this set of services is likely to become a costly, complex, delicately-balanced endeavor, susceptible to the vulnerabilities of each and requiring tailored integration for them all.
An ideal solution would be deploying not several stores, but a single multi-model system that provides all services. A multi-model database is exactly that, providing a set of services that in the past could be provided only by multiple specialized databases.