wandres.dev
HYPERDRIVE · acelerar tu Postgres

Qué es Hyperdrive: acelerar tu base existente

Hyperdrive es, quizá, el producto peor entendido de Cloudflare, y la culpa la tiene su nombre: suena a base de datos nueva y no lo es. Es un acelerador que pone tu Postgres o MySQL ya existente al alcance de un Worker con baja latencia, sin migrar datos ni cambiar de motor. Qué significa exactamente acelerar aquí, por qué el edge convierte una base regional en un cuello de botella, cuáles son las dos palancas —pool de conexiones global y caché de consultas— con que lo resuelve, y por qué tu esquema, tu ORM y tus consultas no cambian ni una línea.

⏱ 14 min

Hyperdrive es, probablemente, la pieza peor entendida de la plataforma, y la culpa la tiene su nombre. Suena a base de datos nueva, a un motor exótico que hay que aprender y al que hay que migrar. No lo es. Hyperdrive no guarda ni un solo byte de tus datos: es un acelerador que toma tu Postgres o MySQL ya existente —esté en AWS, Neon, Supabase o tu propio servidor— y lo pone al alcance de un Worker con la latencia de una base cercana, sin migrar nada ni cambiar de motor. Interiorizar que es una capa, y no un almacén, es la primera y más importante idea de este nivel.

🎯 Al terminar esta lección sabrás
  • Fijar que Hyperdrive acelera una base existente y no es una base de datos nueva.
  • Entender por qué el edge convierte una base regional en un cuello de botella.
  • Ver las dos palancas con que acelera: pool de conexiones global y caché de consultas.
  • Reconocer para quién está pensado y qué no cambia de tu stack actual.

No es una base, es una capa

La confusión nace de meterlo en la misma frase que D1, R2 o KV, que sí son almacenes: guardan datos que antes no existían en ningún sitio. Hyperdrive no guarda nada. Tus datos siguen viviendo donde ya vivían —en tu Postgres de Neon, en tu MySQL de PlanetScale, en la instancia de RDS que administras— y Hyperdrive se sitúa en el camino entre tu Worker y esa base como una capa de conexión y caché. Si mañana lo apagas, tus datos siguen intactos en el origen; lo que pierdes es la aceleración, no la información.

Esa distinción no es un tecnicismo, es la clave de cuándo elegirlo. Hyperdrive es la respuesta a una situación concretísima: ya tienes una base relacional, con su esquema, sus migraciones, sus índices y años de consultas escritas, y ahora quieres consumirla desde Workers sin que la latencia lo arruine. No te pide reescribir a un dialecto nuevo ni exportar tus tablas: te deja tu base tal cual y cambia únicamente el camino por el que el Worker llega a ella.

// tu codigo sigue hablando Postgres normal; Hyperdrive solo cambia el camino
import postgres from "postgres";

export default {
  async fetch(request, env, ctx): Promise<Response> {
    // env.HYPERDRIVE.connectionString apunta al acelerador, no al origen directo
    const sql = postgres(env.HYPERDRIVE.connectionString);
    const filas = await sql`SELECT id, titulo FROM articulos LIMIT 10`;
    return Response.json(filas);
  },
} satisfies ExportedHandler<Env>;

Fíjate en lo que no hay en ese código: ni un SQL distinto, ni un cliente propietario, ni una API inventada. Es el driver postgres de siempre, la misma consulta que escribirías contra tu base directa. Lo único que apunta a Cloudflare es la cadena de conexión. Ese es el corazón del producto: la aceleración es invisible para tu código.

El problema que resuelve: la distancia

Para entender por qué hace falta un acelerador, hay que ver qué se rompe sin él. Un Worker se ejecuta en cientos de ubicaciones a milisegundos del usuario, pero tu Postgres vive en una sola región. Cuando ese Worker abre una conexión a la base, paga dos peajes crueles que en un backend regional clásico casi no se notaban.

El primero es el saludo. Abrir una conexión nueva a Postgres no es gratis: exige un ida y vuelta de TCP, otro par para negociar TLS y varios mensajes más de autenticación y arranque. Son cerca de siete viajes de red antes de poder lanzar la primera consulta. Desde un servidor pegado a la base eso es despreciable; desde el edge, con el origen a 150 milisegundos, cada saludo cuesta más que la consulta misma.

El segundo es el modelo efímero. Un backend tradicional abre un puñado de conexiones al arrancar y las reutiliza durante horas. Un Worker es efímero y masivamente paralelo: no hay un proceso longevo donde guardar un pool, y cientos de isolates independientes intentando conectar a la vez desbordan el límite de conexiones de la base —una tormenta de conexiones que la tumba.

flowchart LR
subgraph edge [Edge global]
  W1[Worker Tokio]
  W2[Worker Madrid]
end
W1 --> HD[Hyperdrive: pool y cache]
W2 --> HD
HD --> PG[Postgres en una region]
style HD fill:#89b4fa,color:#11111b
style PG fill:#fab387,color:#11111b

Hyperdrive se interpone justo ahí. Mantiene un pool de conexiones ya calientes cerca de tu base, de modo que tu Worker no vuelve a pagar el saludo de siete viajes: se conecta a un punto cercano de Hyperdrive, no al origen lejano. Y añade una caché de consultas que sirve las lecturas más populares sin llegar siquiera a la base. Dos palancas, un mismo objetivo: que una base regional se comporte, desde el edge, como si estuviera al lado.

💡
La latencia que ves no es la de la consulta

Cuando midas una consulta lenta desde un Worker sin acelerar, gran parte del tiempo no es la base ejecutando SQL: es el saludo de conexión y el viaje de red. Por eso Hyperdrive acelera tanto sin tocar tu base ni tus índices: no hace que Postgres piense más rápido, hace que hablar con él cueste menos. Distinguir el coste de conexión del coste de cómputo es lo que te deja entender por qué una capa que no ejecuta SQL puede, aun así, multiplicar tu rendimiento.

Para quién es y qué no cambia

Hyperdrive brilla cuando ya tienes Postgres o MySQL y no quieres abandonarlo: una base que supera lo que D1 abarca, un esquema con extensiones y tipos de los que dependes, un equipo con años de SQL escrito, o simplemente el deseo de seguir usando tus herramientas —tu ORM, tus migraciones, tu cliente favorito— desde el edge. Habla con cualquier Postgres o MySQL, y también con las bases compatibles con el protocolo de Postgres, como CockroachDB o Timescale.

🐘

Encaja de maravilla

Ya tienes Postgres o MySQL, tu base es grande, dependes de extensiones o tipos concretos, o quieres conservar tu ORM, tus migraciones y tus consultas tal cual, ahora consumidos desde Workers.

🌱

Piénsatelo dos veces

Empiezas de cero, sin base previa, con una carga intensiva en lectura y global: ahí una base serverless nativa del edge como D1 puede ahorrarte toda la infraestructura de origen.

Lo que no cambia es casi todo tu stack de datos, y esa es su mayor virtud. Tu esquema es el mismo. Tus migraciones se ejecutan igual, contra el origen. Tu ORM —Drizzle, Prisma, Kysely— sigue funcionando porque por debajo usa los mismos drivers postgres o node-postgres que Hyperdrive soporta. No aprendes una API nueva ni reescribes consultas: enchufas la cadena de conexión que Hyperdrive te da y todo lo demás sigue en su sitio.

Acelerar lo que ya existe es una filosofía distinta a reemplazarlo

Hay dos maneras de resolver el problema de acercar los datos al edge, y Hyperdrive encarna la que menos ruido hace. La primera, la que ocupa titulares, es inventar una base nueva nacida para el borde —eso es D1, y es una maravilla cuando empiezas de cero—. La segunda, más humilde y quizá más profunda, es aceptar que el mundo está lleno de bases de datos que ya funcionan, que ya guardan datos críticos, que ya tienen años de esquema, consultas y confianza depositados en ellas, y que la inmensa mayoría de las empresas no van a migrar su Postgres a nada por muy brillante que sea la alternativa. Hyperdrive parte de ese realismo: en lugar de pedirte que abandones tu base, se pone a su servicio y resuelve exactamente los dos problemas que el edge le crea —el coste del saludo de conexión y la tormenta de conexiones efímeras— sin tocar nada más. Es una decisión de diseño con consecuencias que se sienten en producción. Como no guarda datos, no hay migración, no hay riesgo de divergencia entre dos copias, no hay un motor nuevo cuyos bordes raros haya que aprender a la fuerza; tu fuente de verdad sigue siendo la que ya era. Y como se interpone en lugar de reemplazar, hereda gratis todo el ecosistema de Postgres o MySQL: sus extensiones, sus tipos, sus ORMs, sus herramientas de observación, su enorme superficie de conocimiento acumulado. Esa modestia arquitectónica es lo que lo hace tan potente: no compite con tu base, la potencia. Y te enseña una lección que trasciende a Cloudflare: no toda mejora exige reemplazo; a veces la ingeniería más elegante es la capa fina que se coloca entre lo que tienes y donde lo necesitas, y hace que ambos, sin cambiar, por fin se entiendan.

⚔️ Sitúa a Hyperdrive en tu cabeza
  1. Explica en una frase por qué Hyperdrive no es una base de datos, aunque su nombre lo sugiera.
  2. Describe los dos peajes que un Worker paga al conectar a un Postgres regional sin acelerador.
  3. Nombra las dos palancas con que Hyperdrive acelera y di cuál ataca cada peaje del punto anterior.
  4. Piensa en un proyecto con Postgres ya en producción: ¿qué parte de tu stack cambiaría al meter Hyperdrive y qué parte seguiría idéntica?