Simple polyglot persistence in the cloud
Many web-scale applications today are supported by a multiplicity of data store types including any combination of document, graph, key-value and relational stores. Different data stores are best at supporting different components of an application. For example, in an eCommerce application, you may be using these components:
- Relational database such as PostgreSQL for financial data that requires Atomicity, Consistency, Isolation, Durability (ACID) compliance
- Document store such as MongoDB for completed orders
- Key-value store such as Redis for user session data
- Graph store such as IBM Graph for building real-time, fraud-detection capabilities
When different databases work together in this way to support an application, we call it polyglot persistence. If you want advanced features in your application, such as search and geolocation without losing performance, the capability to achieve polyglot persistence is important.
As many development teams have learned, running multiple data stores in a bespoke database management system is challenging, to say the least. However, integrated cloud database platforms such as Compose.io have made it much simpler to deploy different data stores together from a centralized management console. As a result, development teams can focus on building their application and scaling it, rather than spending time on database management.
Capitalize on an open source database ecosystem
During the last five years, an explosion of new open source data stores have emerged: document stores such as RethinkDB, key-value stores such as Redis and messaging tools such as RabbitMQ, to name a few. This growing ecosystem is a boon for developers and other builders who want advanced features for their web applications and solutions, such as contextual search, messaging and real-time collaboration.
When combining these data stores in a solution that can best support your application, building and managing a tailored system of on-premises and cloud-hosted databases is generally inefficient and impractical. For this reason, utilizing cloud platforms to simplify multi-database systems is increasingly popular.
Compose is an example of a database-as-a-service (DBaaS) platform. It allows you to manage multiple containerized data stores from a single web console. Using Compose, you can instantly build production-grade data layers using hand-picked open source databases—with full database administrator (DBA) support—that provide high availability, scaling, backups and failover. Compose leverages seven highly popular open source databases—and more are on the way:
- etcd: Distributed key-value store with source-of-truth data consistency
- MongoDB: JSON document store with powerful indexing and querying
- PostgreSQL: Highly customizable object-relational database
- RabbitMQ: Multiprotocol message brokering engine with high availability
- Redis: Fast key-value store that handles an entire data set in RAM
- RethinkDB: Distributed JSON store with real-time push architecture
Using Compose, you can run any of the aforementioned databases in dedicated data clusters on the cloud infrastructure of your choice—IBM SoftLayer or Amazon Web Services (AWS)—as well as on premises or in a hybrid environment.
Fast-track to polyglot persistence
Platforms such as Compose offer the flexibility to choose the right tools—data stores—for any application data management workloads and to rapidly deploy and scale them in a production-ready environment, providing a fast track to polyglot persistence. And with the recent release of Compose Enterprise, developers and other builders have additional flexibility to deploy multi-database systems that meet enterprise application requirements—either in an IBM-managed model or a self-hosted, virtual private cloud model.
Whether developers opt for an IBM-managed Compose platform in a dedicated, single-tenant data cluster, or prefer a self-hosted Compose environment on their own infrastructure as a service (IaaS) such as SoftLayer or AWS, they’ll have the same unified user experience. Features such as data encryption at rest and default encrypted backups mean that Compose Enterprise keeps safety of data top of mind.
The goal of providing a single platform with production-ready, open source databases tailored for modern applications—paired with IBM management services—is to combine the best of enterprise know-how and open source innovation. When enterprise developers operate in a frictionless environment such as Compose, across different databases and languages, they can achieve the same agility as the mobile start-up developer—all while staying in the bounds of enterprise IT requirements.