Postgres stays exactly where it is, serving your application. It becomes a datasource: a named, governed
connection the agent reads through and a pipeline can query, marked read-only wherever nothing should
ever write. The agent's SQL runs against your real schema with a key you issued and can revoke; the
database password itself never leaves the deployment.
The scratch engine is per run, so there is nothing new to operate when the second source arrives. The
join happens in an H2 workbench that exists for exactly that execution. And when the result of a pipeline
belongs back in Postgres, a rollup table a dashboard reads, say, a write-back node lands it in a
database you already run. You only meet a second deployment if you decide the data volume, not the
question count, has earned one.
The order of operations matters, and it is the order this page is written in: the datasources register in
minutes, the agent's first draft is a review artifact rather than a commitment, and the release step only
appears when a second person cares what ran. Postgres was never demoted; it gained a governed front door
for the questions that stopped fitting inside a single engine. If and when a warehouse genuinely arrives,
volume, retention, a modelling practice, the pipelines you built in the meantime speak the same endpoint
contract into it, which is a migration path, not a cliff. And nothing here is a rewrite of how your team
works: the database stays the database, and the new arrivals plug into it rather than around it.