Drop the pooler from the MVP: point everything straight at Postgres

.env.example and the README still told people to use pgCat on :6432, the
exact setup that hangs on every parameterised query. With no prod and one
backend instance there is nothing for a pooler to multiplex, and
postgres-js already pools in-process, so DATABASE_URL now points at
Postgres on :5432 in .env.example, dev-env.sh and drizzle.config.ts.

prepare:false is kept in src/db/index.ts on purpose, so adding
PgBouncer later (tested working) is a config change rather than a code
change. The long measurement narrative in that file's comment is cut to
the decision and the pointer to PLAN.md, where the numbers now live.
This commit is contained in:
2026-10-20 10:24:19 +00:00
parent a9aec03d47
commit c312e37b4a
6 changed files with 21 additions and 36 deletions
+2 -3
View File
@@ -1,7 +1,6 @@
# continuum-backend
Cloud control plane for Continuum. Bun + ElysiaJS, PostgreSQL (via pgCat/PgBouncer,
with pgvector for frame embeddings), Valkey Streams, and Cloudflare R2 storage.
Cloud control plane for Continuum. Bun + ElysiaJS, PostgreSQL (with pgvector for frame embeddings), Valkey Streams, and Cloudflare R2 storage.
## Run
@@ -48,7 +47,7 @@ backend and records what a gateway sends, for refreshing the fixtures in
## Layout
- `src/db/` - Drizzle schema (`printers`, `farms`, `print_jobs`, `frame_embeddings`)
and client, pointed at pgCat. `src/db/validators.ts` derives Elysia/TypeBox
and client, pointed straight at Postgres. `src/db/validators.ts` derives Elysia/TypeBox
request validators straight from the Drizzle tables via `drizzle-typebox`,
so the Postgres schema and the API validators come from one definition
instead of two hand-synced ones.