isolation
One shared Postgres with a tenant_id column — a bug or leak crosses agents.
A dedicated managed Postgres per agent. Isolation is the boundary, not a WHERE clause.
Shared databases isolate tenants with a WHERE clause — the kind of boundary a bug walks right through. On a2a cloud, every `a2a deploy` provisions a dedicated, managed Postgres for that agent: a real isolation boundary, a clean audit boundary, and pgvector memory built in. You get a connection string, not a database to babysit.
isolated · pgvector memory · scoped access
The default way to give agents a database is a shared Postgres partitioned by a tenant_id column. It works until a query forgets the filter, an injection slips the WHERE clause, or an incident review asks which agent touched a row and the answer is 'all of them share the table.' Meanwhile agent memory needs vectors, so you bolt on a second store to provision and keep in sync. Isolation, audit, and memory each become a project.
The database is a first-class part of a deploy, not something you wire up after. Per-agent isolation gives you a boundary for blast radius and audit; pgvector gives you memory in the same store; scoped grants replace ambient access.
Every `a2a deploy` provisions a dedicated, managed Postgres for that agent. Not a shared cluster with a tenant column — a real isolation boundary, so one agent's data and blast radius stay its own.
The database ships with pgvector, so agent memory, embeddings, and retrieval live next to relational state. No separate vector store to run, sync, or reconcile — one connection string for facts and recall.
Because the database is per-agent, its storage boundary maps to one deployed agent instead of a shared tenant column. Execution receipts identify the agent and run, but they do not record database queries or row access by default.
The platform projects a per-agent database connection credential into the hosted container. Database access is isolated by the dedicated database and credential; it is not universally mediated by audience- and TTL-bound grants.
Provisioning, upgrades, and backups are handled by the platform. You get a connection string on deploy; you don't get a Postgres to babysit, patch, or capacity-plan per agent.
Per-agent boundaries make an agent portable: its state is its own database, not entangled in a shared schema. Tear one agent down, or lift it, without a cross-tenant data untangling exercise.
One shared Postgres with a tenant_id column — a bug or leak crosses agents.
A dedicated managed Postgres per agent. Isolation is the boundary, not a WHERE clause.
A separate vector DB to provision, sync, and keep consistent with relational state.
pgvector in the same database — embeddings and facts behind one connection string.
'Which agent touched this?' means auditing a shared multi-tenant schema.
Data belongs to one agent's store; receipts identify those runs but not individual SQL activity.
A standing superuser connection string baked into the agent image.
A per-agent connection credential projected at runtime, separate from the image and from grant-backed workspace access.
You provision, patch, back up, and capacity-plan a database per service.
Managed lifecycle — a connection string on deploy, no Postgres to babysit.
Yes. Every `a2a deploy` provisions a dedicated, managed Postgres for that agent — not a shared cluster with a tenant column. Each agent's data lives behind its own isolation boundary, which contains blast radius and makes the database a clean audit boundary for that agent's runs.
A shared database often enforces tenant isolation in application logic. A per-agent database and credential give each deployment a separate normal access boundary and make migration simpler. Receipts identify those runs, but current sealers do not claim SQL statements or row access as signed fields.
Yes. The per-agent database ships with pgvector, so embeddings, semantic memory, and retrieval sit alongside relational state behind one connection string. You don't run or reconcile a separate vector store — agent memory and structured data share the same managed database.
The platform provisions and projects a per-agent connection credential into the hosted container rather than baking it into the image. That credential is ambient to the agent process while it runs, so it must be governed and rotated separately; scoped workspace grants do not mediate every database query.
No. The database lifecycle — provisioning, upgrades, and backups — is managed by the platform. You receive a connection string on deploy and never capacity-plan or patch a Postgres per agent. That's the point of managed Postgres for AI agents: per-agent isolation without per-agent operations.
All guides live in the guides index.
a2a cloud deploys any agent with dedicated managed Postgres, MCP and API surfaces, a frontend, and scoped grants. Agent API, public `/invoke`, and standard MCP `tools/call` executions receive Ed25519-signed receipts; formal A2A task routes remain protocol state.