Cloudflare Workers
Cloudflare Workers is an edge compute platform for running serverless functions globally. Workers can connect to MotherDuck through the Postgres endpoint using the pg npm package.
Connection
Workers connect to MotherDuck using a standard Postgres connection string:
import { Client } from "pg";
const connectionString =
`postgresql://user:${MOTHERDUCK_TOKEN}@pg.us-east-1-aws.motherduck.com:5432/${DATABASE}?sslmode=require`;
const client = new Client({ connectionString });
await client.connect();
Key requirements:
- The
nodejs_compatcompatibility flag must be enabled inwrangler.toml— it provides thenode:netmodule thatpgneeds for TCP connections. - Use
?sslmode=require. MotherDuck's Postgres endpoint only accepts encrypted connections, and Cloudflare Workers delegates certificate verification to the runtime's TLS stack. - Store your MotherDuck token as a Wrangler secret — never commit tokens to source code.
Connection pooling with Hyperdrive
For production workloads, Cloudflare Hyperdrive provides built-in connection pooling. This reduces latency by reusing connections across Worker invocations instead of opening a new connection per request.
# wrangler.toml
[[hyperdrive]]
binding = "MD_HYPERDRIVE"
id = "<your-hyperdrive-config-id>"
const client = new Client({
connectionString: env.MD_HYPERDRIVE.connectionString,
});
For local development with wrangler dev, add a localConnectionString to the Hyperdrive binding or export CLOUDFLARE_HYPERDRIVE_LOCAL_CONNECTION_STRING_MD_HYPERDRIVE. That lets you test the Worker locally against MotherDuck before deploying the Hyperdrive-backed version.
Tutorial
For a step-by-step guide to building and deploying a Cloudflare Worker that queries MotherDuck, see Connect from Cloudflare Workers.