In modern software development, the question is no longer "Which database should we use?" but "Which databases should we use?" The reality for most growing applications is a complex and sprawling data layer. You might have PostgreSQL for your core transactional data, Redis for caching, and Elasticsearch for search. These databases might be spread across multiple cloud providers like AWS, GCP, and Azure, and duplicated across development, staging, and production environments.
This distributed collection of data stores is your database fleet.
Managing this fleet is one of the biggest operational headaches for engineering teams. You're bogged down by a patchwork of provider-specific consoles, disparate IaC scripts, and complex credential management. This operational drag slows down development, increases the risk of configuration drift, and makes it nearly impossible to get a unified view of your data infrastructure.
What if you could tame this chaos? What if you could provision, monitor, and manage your entire fleet as a single, programmable service? This is the promise of databases.do—a unified control plane that transforms complex data infrastructure orchestration into simple, agentic workflows.
The rise of the database fleet isn't accidental; it's a direct result of architectural best practices:
While strategically sound, this approach creates a massive management challenge. The old model of manually tending to a single, monolithic database simply doesn't scale. We need a new paradigm: Database Fleet Management as Code.
"Database as Code" applies the same principles as "Infrastructure as Code" to your data layer. It’s about defining and managing your database resources through machine-readable code rather than manual configuration or interactive tools.
The databases.do agent is designed specifically for this. It's a high-level agent on the .do Agentic Workflow Platform that acts as a universal remote for your entire database fleet.
Instead of writing complex Terraform or CloudFormation for every database type and cloud provider, you use a simple, unified API.
Here’s how easy it is to get a handle on your entire fleet:
import { Do } from '@do-sdk/core';
// Initialize the .do client
const ado = new Do();
// Access the databases agent
const myDatabases = ado.use('databases.do');
// List all managed database instances across all clouds and types
const allInstances = await myDatabases.list();
console.log(allInstances);
In just a few lines of code, you've connected to the databases.do fleet manager and retrieved a complete inventory of your managed instances. No more clicking through five different AWS, GCP, and Azure tabs.
This simple list() command is just the beginning. Imagine the power of myDatabases.create(...) to provision a new Postgres instance on GCP or myDatabases.destroy(...) to tear down a temporary staging environment—all from a single, repeatable, and version-controlled script.
The databases.do agent functions as a powerful abstraction layer. It understands the unique APIs and configurations for different database services (like AWS RDS, GCP Cloud SQL, or Azure Database for PostgreSQL) so you don’t have to.
This provides two game-changing benefits:
This is the power of an agentic workflow: you declare your intent—"I need a medium-sized Redis cache"—and the agent handles the complex, provider-specific steps to make it happen.
What is the difference between database.do and databases.do?
database.do is designed to manage a single database instance, handling its schema, queries, and specific operations. databases.do is a higher-level agent that orchestrates a collection or 'fleet' of multiple database instances, perfect for managing data across microservices, multi-tenant systems, or different environments (dev, staging, prod).
Can I manage different types of databases across multiple clouds?
Yes. The databases.do agent acts as a control plane, allowing you to provision, configure, and manage diverse database types (e.g., PostgreSQL, Redis, MongoDB) from different cloud providers (AWS, GCP, Azure) through one unified API.
How do I provision a new database using the databases.do agent?
You can programmatically provision a new database instance by calling create() on the agent, specifying the desired type, configuration, and provider. This turns complex infrastructure setup into a single, repeatable line of code.
How is security handled when managing multiple databases?
All interactions are secured through the .do platform's centralized authentication and authorization. You can define fine-grained policies to control which users or services have the permission to list, create, or destroy database instances within your fleet.
Your data infrastructure is too critical to be managed with manual toil and a patchwork of scripts. It's time to treat your Data Collections as Code. By embracing a unified API for fleet management, you empower your team to move faster, reduce operational errors, and build more resilient, scalable systems.
Ready to tame your database chaos? Explore the databases.do agent and transform your data infrastructure management today.