Telegram (ask questions / claim the issue here first): https://t.me/+DOylgFv1jyJlNzM0
Why this matters
src/db/connection.ts creates the Pool with only connectionString and sizing (lines 19-24). There is no ssl option, so TLS/cert validation depends entirely on the DATABASE_URL string, and there is no statement_timeout, so a slow or stuck query can hold a connection indefinitely and exhaust the pool.
Acceptance criteria
Files to touch
- src/db/connection.ts
- .env.example
Out of scope
- Switching connection pooler (pgbouncer)
- Read-replica routing
Why this matters
src/db/connection.ts creates the Pool with only connectionString and sizing (lines 19-24). There is no ssl option, so TLS/cert validation depends entirely on the DATABASE_URL string, and there is no statement_timeout, so a slow or stuck query can hold a connection indefinitely and exhaust the pool.
Acceptance criteria
Files to touch
Out of scope