Hyperdrive PG-pool — Supabase / Neon / RDS gyorsítás CF edge-en
Cloudflare Hyperdrive-alapú connection-pool a saját Postgres-DB-d előtt. Megoldja a Workers-en gyakori 100-conn-limit problémát.
A Hyperdrive plugin egy Postgres connection-pool a CF edge-en a saját külső PG-DB-d (Supabase, Neon, AWS RDS, Railway, vagy saját VPS) előtt.
1. Mire jó?
- Workers-PG-bridge: Cloudflare Workers natívan nem tud Postgres-t direktben fenntartani — Hyperdrive pool-os hídként működik
- Connection-limit megoldás: Supabase ingyen 60 conn / Neon 100 conn — Workers spawn-ol naponta 1000+ instance-ot, ami felrobbantaná a poolt; Hyperdrive 1 perzisztens connection-pool-t tart fenn
- Globális query-cache: read-heavy SELECT-ek cache-elve a CF edge-en
- Automatikus SSL: Hyperdrive proxy-zza, nem kell egyéni-CA bajlódás
2. Aktiválás
/app/plugins → Hyperdrive PG-pool → ”+ Aktiválom”. Free: 1 config. Start (1990 Ft): 5. Pro (4990 Ft): 25.
3. Új config
/app/hyperdrive → ”➕ Új Hyperdrive-config”:
- Név (UI-only)
- Postgres-URL:
postgres://user:[email protected]:5432/postgres - Cache max-age (mp): 0 = no-cache, default 60
- Stale-while-revalidate (mp): default 15
⚠️ A jelszó SOHA nem kerül a PromNET D1-jébe. Cloudflare Hyperdrive tárolja titkosítva a saját rendszerében. Mi csak a non-sensitive metadat (host, db-név, user) tartjuk meg az UI-hoz.
4. Wrangler-binding hozzáadása a saját Workered-hez
A config létrehozása után megjelenik a cf_config_id UUID. Ezt tedd
a saját Worker-projekted wrangler.toml-jába:
[[hyperdrive]]
binding = "DB"
id = "<a megjelenő cf_config_id>"
5. Worker-kód példa
import { Client } from 'pg'; // node-pg, Workers-kompatibilis
interface Env { DB: Hyperdrive }
export default {
async fetch(req: Request, env: Env): Promise<Response> {
const client = new Client({ connectionString: env.DB.connectionString });
await client.connect();
try {
const r = await client.query('SELECT id, name FROM products WHERE active = $1 LIMIT 10', [true]);
return Response.json(r.rows);
} finally {
// Hyperdrive lezárja maga, a pool-elést mi nem botolod
await client.end();
}
},
};
6. Cache-stratégia
- Cache max-age (pl. 60 mp): a 60 mp-n belüli azonos query-k cached-from-edge → ~0 ms latency
- Stale-while-revalidate (pl. 15 mp): a max-age lejárta után még 15 mp-ig stale-választ ad, közben háttérben frissít
- Total invalidálás: cache_max_age=0 minden query-t directben küld
A cache-kulcs a query-string (paraméterekkel együtt), nem a query-template.
7. Mikor NE használd Hyperdrive-ot?
- Tranzakcionális workload: cache hibás eredményt adhat (pl. account-balance ne legyen cached)
- Write-heavy: Hyperdrive elsősorban read-cache, de write-okat is jól proxy-zik
- Realtime-kritikus: a stale-while-revalidate néhány mp késleltetést hozhat
8. Törlés
A “Törlés” gombbal a CF Hyperdrive-config is megszűnik. A saját Worker- binding-od ettől 502-t kezd dobni — előbb távolítsd el a binding-ot.