Skip to content

Database Strategy Guide: Proxy Server and Hyperdrive

This guide helps you choose the right MySQL connection strategy for your ZinTrust application on Cloudflare Workers. Since Workers are stateless and often run in many regions, connecting to a centralized SQL database requires careful architectural choices.

Option 1: Node.js Proxy Server (MySqlProxyServer)

Architecture: ZinTrust runs a lightweight Node.js HTTP server (typically on a VPS, EC2, or container) that sits next to your database. Your Cloudflare Workers send SQL queries to this proxy over HTTP, and the proxy executes them against the database using a persistent connection pool.

FeatureDetails
SpeedFast & Consistent. The proxy maintains a warm connection pool (mysql2), so queries execute immediately without waiting for a TCP handshake.
Load HandlingHigh. Can handle thousands of concurrent Edge requests by multiplexing them over a fixed number of DB connections. Serves as a connection buffer.
I/O LimitationsNone. Runs in a standard Node.js environment. No "cross-request I/O" errors.
Operational OverheadMedium. Requires hosting and managing a separate Node.js process (e.g., via PM2 or Docker).
SecuritySupports signed requests (HMAC) to ensure only your Workers can talk to it.

Best For:

  • High-traffic production applications.
  • Teams who can host a small Node.js service (e.g., $5 VPS or existing container cluster).
  • Scenarios requiring maximum throughput and low latency.

Summary Recommendation

PriorityRecommended Strategy
Performance & ScaleUse Option 1 (Proxy Server). It is battle-tested, standard, and robust.
Convenience (Zero Ops)Use Cloudflare Hyperdrive (managed service) for managed pooling without maintaining a proxy process.
Local / DevelopmentStart with proxy mode locally to keep behavior aligned with production.

Released under the MIT License.