3 Reasons Developers Are Better Off Using 1 Converged Database Engine
Bringing lots of capabilities into a single cloud database service makes developers and analysts more productive, and it makes data more useful.
Join the DZone community and get the full member experience.Join For Free
Do you remember years ago before smartphones? You used to have a whole set of devices that each did one thing for you, like make calls, record messages, play music, or shoot pictures. Then the smartphone won us over because it converged all those into one technically elegant and intuitive device we can’t live without.
The notion of a converged database engine works on exactly this same principle. It converges an array of database capabilities — such as managing relational data, spatial data, JSON documents, IoT devices, social graphs, and blockchains—into one database engine. It can run workloads from online transaction processing to real-time analytics and machine learning, and can work within development paradigms such as microservices, events, REST, SaaS, and CI/CD.
To this point, however, a converged database engine has not been the standard choice of cloud developers, or the standard offering of cloud vendors. Most vendors offer a 'one-trick pony' cloud database. They say you need purpose-built, isolated databases, arguing that you can’t have the best database for a given workload if it’s trying to do everything at once. For example, Amazon offers 16 different open source-based (but now mostly proprietary) databases for different workloads, and vendors like MongoDB and Snowflake offer specialty databases for JSON documents and data warehousing, respectively.
The basic problem with the single-use database that does only one thing well is that when a developer builds an application, he or she has to deploy, manage, secure, and patch several different databases and then tie them together into a complex flow. Then an analyst or data scientist has to laboriously take data out of several databases and combine it in yet another database to run analytics, creating more data silos.
“The more databases and data types that exist, the more specialized transfer systems are required,” researchers at Wikibon recently noted. “Sixteen databases would require 120 different transformation transport systems. Fifty databases would require 1,225.”
In contrast, a converged database engine approach lets developers work with different data models and data types in one database. There’s no need to transform and move data outside the database — no data silos to integrate. Just this simple example tells you why a converged strategy is better, but there’s much more to the story. Here are three big reasons.
1. A Converged Database Makes Developers More Productive
Developers are often under pressure to work fast, so they tend to grab a simple database that meets their initial application requirements. But what happens when requirements change (they always do) and developers are now asked to run high-performance analytics against the data. The answer is that they have to take the data out and put it into an analytics database, which they will also have to support.
Then what happens if they need to do social graph analysis or work with spatial data or store JSON documents? They have to deploy yet more databases. Now that application’s data is fragmented across all these different database engines, so it’s hard to run analysis across combinations of the data, it’s much harder to ensure data consistency, and data security equals the least secure of these database engines.
For example, developers often use JSON documents when they’re coding a mobile app to do a job like hailing a taxi or ordering food. If a developer uses a converged database — instead of a specialty database for their JSON data stores — they have all the data security, availability, and enterprise-class data management capabilities they’ve built around the rest of their data, such as those in their CRM, ERP, or HR applications. This is much more efficient and productive. Also, users can ask more complex questions of their JSON document stores because they already have all this other information stored alongside it, and they can do a simple SQL query across a combination of the information.
Now, a developer might argue that they don’t want to get involved in setting up a complex enterprise database just to begin coding an application. Understandable. But the cloud has changed the equation. You can provision a full-featured, converged enterprise database in the cloud in a couple of minutes — one that does its own patching, its own tuning, its own scaling, and its own backups. The developer can focus on coding and get to work almost instantly while getting all the features an enterprise might need down the road.
2. A Converged Database Is What the Most Ambitious Database Users Have Asked For
As I noted earlier, a converged database engine can support a wide array of data types, workloads, and development paradigms. It’s not as easy for vendors to build as those single-purpose databases — it takes engineers doing deep computer science for decades, listening to their customers, and building the features they want. And in the cloud, it has to operate 24/7 at scale with minimal management and security overhead. By contrast, single-purpose databases on the cloud are often venerable open source databases forked into proprietary products.
3. A Converged Database Makes Developers, Analysts, and Data Scientists More Productive
As a customer told us recently: “As a chief data officer, my number one priority is to get clean data in front of as many people as possible so they can use it.” That becomes much easier to do, the executive says, if different data types and use cases are all being managed in the same database engine using open standards SQL. Meanwhile, single-purpose databases all come with their own proprietary APIs, further complicating the flow of data.
That customer makes use of another feature that is gaining popularity with developers and non-developers alike: low-code application development and deployment environment integrated into the converged database engine. With it, professional developers and citizen developers — such as business analysts and data scientists — have everything they need to quickly build data-driven apps, without having to worry about security, availability, scalability, or management.
If we go back to the smartphone analogy, these pieces all come together. You can think of the converged database as your smartphone, and the integrated low-code environment as your favorite app from the app store that would never work on your antiquated, single-purpose flip-phone.
Opinions expressed by DZone contributors are their own.