Back to Blog
databasepostgresqlcloudnews

PostgreSQL Serverless 2025: La Verdad Sobre Supabase, Neon y PlanetScale

Análisis profundo del panorama de las bases de datos en 2025. Comparación de las arquitecturas, el rendimiento y la transición al almacenamiento desagregado de Supabase, Neon y PlanetScale.

DataFormatHub Team
December 23, 202514 min read
Share:
PostgreSQL Serverless 2025: La Verdad Sobre Supabase, Neon y PlanetScale

El panorama de las bases de datos para aplicaciones modernas está en un estado constante de cambio, con paradigmas serverless y distribuidos que superan los límites de lo posible con los datos relacionales. Como profesionales, hemos sido testigos de importantes avances en el último año, particularmente dentro del ecosistema PostgreSQL, a medida que plataformas como Supabase, Neon e incluso PlanetScale, tradicionalmente centrada en MySQL, compiten por la supremacía en ofrecer soluciones robustas, escalables y fáciles de usar para los desarrolladores. Esto no se trata de publicidad; se trata de los cambios arquitectónicos tangibles, las ganancias de rendimiento y las eficiencias operativas que se están volviendo críticos para las implementaciones en producción.

Habiendo puesto recientemente estas plataformas a prueba, he observado una clara tendencia: la desagregación del cómputo y el almacenamiento, la gestión sofisticada de conexiones y la búsqueda implacable de flujos de trabajo para desarrolladores "tipo Git" ya no son características aspiracionales, sino requisitos indispensables. Los números cuentan una historia interesante, revelando tanto impresionantes avances como desafíos persistentes.

Los Cambios en las Arquitecturas de Bases de Datos: Del Monolito a los Microservicios

La implementación tradicional de PostgreSQL, aunque robusta, a menudo tiene dificultades bajo las demandas de las funciones serverless y las aplicaciones distribuidas globalmente. El acoplamiento inherente entre el cómputo y el almacenamiento en una instancia estándar de PostgreSQL crea cuellos de botella para la escalabilidad independiente e introduce complejidad para la alta disponibilidad y la recuperación ante desastres. El año pasado, estas plataformas han redoblado sus esfuerzos en arquitecturas que abordan fundamentalmente estas limitaciones.

Neon, en particular, ha construido toda su premisa sobre esta desagregación. Su arquitectura separa el proceso de cómputo de PostgreSQL, que se ejecuta como un microservicio sin estado, de una capa de almacenamiento duradera y multi-tenant. Este diseño significa que una instancia de PostgreSQL se puede activar o desactivar bajo demanda, extrayendo solo los datos necesarios de la capa de almacenamiento para responder a las consultas. Esta es una desviación significativa de las configuraciones tradicionales donde una sola instancia controla el almacenamiento local, simplificando las copias de seguridad, la replicación lógica y el aprovisionamiento de réplicas de lectura. La capa de almacenamiento en sí está diseñada como un almacén clave-valor, integrado con el almacenamiento de objetos en la nube como Amazon S3 o Google Cloud Storage para la durabilidad y la escalabilidad.

Supabase, si bien ofrece una instancia de PostgreSQL administrada, ha estado evolucionando sus servicios circundantes para adoptar patrones más orientados a microservicios. Su migración a una arquitectura de plataforma v2, completada para los planes de pago y que se está implementando gradualmente en los planes gratuitos a partir de marzo de 2024, desvincula servicios como Storage, Realtime y el pool de conexiones (PgBouncer). Anteriormente, estos eran servicios de una sola instancia por proyecto. La arquitectura v2 los cambia a un modelo multi-tenant, donde una sola instancia atiende a muchos proyectos. Esto tiene como objetivo liberar recursos para las bases de datos PostgreSQL, habilitar características que consumen más recursos y allanar el camino para capacidades como la escalabilidad sin tiempo de inactividad. Esta es una optimización práctica, que permite a Supabase ofrecer una mejor utilización de los recursos y potencialmente un rendimiento más estable en toda su base de usuarios.

La Evolución Arquitectónica de Supabase: El Edge y las Capacidades en Tiempo Real

Supabase continúa refinando su ecosistema en torno a PostgreSQL, con notables avances en sus Edge Functions y capacidades en tiempo real. El compromiso de la plataforma de proporcionar un backend como servicio (BaaS) integral construido sobre estándares abiertos sigue siendo fuerte.

Edge Functions: Acercar el Cómputo a los Usuarios

Las Edge Functions de Supabase, impulsadas por Deno, son funciones TypeScript distribuidas globalmente diseñadas para ejecutarse cerca del usuario, minimizando la latencia para las solicitudes HTTP. Para obtener una visión más profunda de cómo esto se compara con otros entornos de ejecución de edge, consulta Cloudflare vs. Deno: La Verdad Sobre la Computación de Edge en 2025. Las actualizaciones recientes en 2025 han hecho que la implementación y la gestión de estas funciones sean más simplificadas, con opciones de implementación directa desde el panel de control y la CLI de Supabase.

Un aspecto crítico para los desarrolladores es cómo estas Edge Functions interactúan con la base de datos PostgreSQL. Si bien Supabase proporciona una API RESTful generada automáticamente (PostgREST) y una API GraphQL, las Edge Functions también pueden conectarse directamente a la base de datos utilizando cualquier cliente PostgreSQL popular. Esto permite ejecutar SQL sin procesar dentro de la función, una característica poderosa para la lógica personalizada que exige baja latencia y acceso directo a los datos.

Considera un escenario en el que necesitas realizar una validación personalizada o una transformación de datos antes de escribir en la base de datos, o activar una consulta compleja basada en un webhook entrante. Una Edge Function puede interceptar la solicitud, realizar la lógica y luego interactuar con PostgreSQL. Por ejemplo, utilizando el controlador Deno Postgres:

// supabase/functions/my-edge-function/index.ts
import { Pool } from 'https://deno.land/x/postgres@v0.17.0/mod.ts'; //

Deno.serve(async (req) => {
  try {
    const { some_data } = await req.json();

    // Establecer un pool de conexiones a la base de datos
    // En producción, la URL de la base de datos está configurada automáticamente con SSL.
    const pool = new Pool(Deno.env.get('DATABASE_URL'), 1);
    const connection = await pool.connect();

    try {
      // Ejemplo: Insertar datos después de alguna validación
      const result = await connection.queryObject`
        INSERT INTO public.my_table (data_field)
        VALUES (${some_data})
        RETURNING id;
      `;
      return new Response(JSON.stringify({ id: result.rows[0].id }), {
        headers: { 'Content-Type': 'application/json' },
        status: 200,
      });
    } finally {
      connection.release();
    }
  } catch (err) {
    return new Response(String(err?.message ?? err), { status: 500 });
  }
});

Esta conexión directa contrasta con las interacciones del lado del cliente, donde la API PostgREST a menudo se prefiere por su cumplimiento integrado de RLS y la serialización JSON. Para las Edge Functions, la naturaleza del lado del servidor hace que las conexiones TCP directas sean factibles y, a menudo, más eficientes para operaciones complejas y con estado.

Tiempo Real: Replicación Lógica de PostgreSQL a Escala

La funcionalidad en tiempo real de Supabase es un diferenciador clave, que permite actualizaciones en vivo para aplicaciones de chat, herramientas colaborativas y paneles de control. Su arquitectura aprovecha la función de Replicación Lógica de PostgreSQL para transmitir los cambios de la base de datos. A diferencia de la replicación física, que envía archivos binarios, la replicación lógica transmite los cambios de datos (inserciones, actualizaciones, eliminaciones) como mensajes lógicos, lo que permite suscripciones granulares a nivel de tabla.

El núcleo de este sistema implica que Supabase cree slots de replicación en PostgreSQL para transmitir las entradas del Registro de Escritura Anticipada (WAL). Estas entradas WAL se analizan y se emiten como cargas útiles JSON a los clientes a través de conexiones WebSocket. Este diseño permite la escalabilidad horizontal al desacoplar la base de datos de la capa de entrega en tiempo real, admitiendo múltiples suscriptores con una sobrecarga mínima. Supabase utiliza un servidor Elixir/Phoenix para su infraestructura en tiempo real, una elección deliberada debido a las fortalezas de Elixir en el manejo de conexiones concurrentes y mensajes de baja latencia. Esta infraestructura personalizada se construyó para superar las limitaciones del mecanismo nativo NOTIFY/LISTEN de PostgreSQL, particularmente su límite de carga útil de 8000 bytes, que sería insuficiente para capacidades en tiempo real de nivel empresarial.

El servicio en tiempo real también proporciona Broadcast para mensajes efímeros y Presence para el seguimiento del estado compartido, extendiéndose más allá de las simples notificaciones de cambio de la base de datos. Este enfoque en capas brinda a los desarrolladores herramientas poderosas para construir aplicaciones dinámicas sin un conocimiento profundo de los internos de la replicación de PostgreSQL.

Neon's Serverless PostgreSQL: Desagregación en la Práctica

Neon ha defendido constantemente la desagregación del cómputo y el almacenamiento como el cambio fundamental para PostgreSQL serverless. Su arquitectura es una respuesta directa a las limitaciones de PostgreSQL tradicional en entornos serverless y nativos de la nube.

Separación de Cómputo y Almacenamiento: La Innovación Central

La arquitectura de Neon divide el monolito de PostgreSQL en una capa de cómputo sin estado y una capa de almacenamiento duradera y multi-tenant. Los nodos de cómputo, que son instancias estándar de PostgreSQL, se vuelven efímeros. Cuando una base de datos está inactiva durante un período configurable (por ejemplo, cinco minutos), el nodo de cómputo se apaga, escalando a cero. Al establecer una nueva conexión, se activa rápidamente un nodo de cómputo en un contenedor de Kubernetes, conectándose al sistema de almacenamiento existente sin necesidad de restaurar datos. Esta capacidad de "escalar a cero" es un mecanismo de ahorro de costos significativo para las cargas de trabajo intermitentes.

La capa de almacenamiento es un sistema de capas de solo agregado construido para almacenes de objetos, que proporciona durabilidad y permite características como viajes en el tiempo y ramificación. Las escrituras en la base de datos se transmiten como registros WAL a los WAL safekeepers, que garantizan la durabilidad a través de un mecanismo de consenso basado en Paxos antes de ser procesados por el pageserver y cargados en el almacenamiento de objetos. Este robusto sistema de almacenamiento permite la escalabilidad independiente de los recursos de cómputo y almacenamiento.

Para mitigar la latencia de "inicio en frío" inherente a la escala de cómputo a cero, Neon emplea estrategias como el pooling de conexiones a través de PgBouncer. PgBouncer permite a Neon admitir hasta 10,000 conexiones concurrentes manteniendo un pool de conexiones a PostgreSQL, reduciendo la sobrecarga de establecer nuevas conexiones de base de datos para cada solicitud de cliente.

Los desarrolladores pueden elegir entre cadenas de conexión directa y con pool. Para las funciones serverless y la alta concurrencia, la cadena de conexión con pool, identificable por la opción -pooler en el nombre de host (por ejemplo, ep-neon-db.pooler.neon.tech), es muy recomendable.

// Ejemplo de conexión a Neon con pooling
import { Pool } from '@neondatabase/serverless';

const connectionString = process.env.DATABASE_URL_POOLED; // e.g., postgres://user:pass@ep-neon-db.pooler.neon.tech/dbname

const pool = new Pool({ connectionString });

export async function handler(event) {
  const client = await pool.connect();
  try {
    const res = await client.query('SELECT NOW()');
    return {
      statusCode: 200,
      body: JSON.stringify({ time: res.rows[0].now }),
    };
  } finally {
    client.release();
  }
}

Ramificación Tipo Git y Viajes en el Tiempo

Una de las características destacadas de Neon, y un gran impulso a la productividad, es su funcionalidad de ramificación tipo Git. Gracias a su arquitectura de almacenamiento de copia al escribir, crear una nueva rama es una operación instantánea, independientemente del tamaño de la base de datos. Esta nueva rama es una copia completa y aislada de los datos y el esquema de la rama principal en el momento de la creación, pero solo almacena el delta de los cambios, lo que la hace extremadamente rentable.

Esto permite flujos de trabajo de desarrolladores potentes:

  • Desarrollo de Funciones: Los desarrolladores pueden crear una rama para cada nueva función, experimentar sin afectar la producción y descartar la rama fácilmente.
  • Pruebas: Inicia una rama de base de datos dedicada para cada ejecución de la canalización de CI/CD o implementación de vista previa. La integración de Neon con Vercel, por ejemplo, puede crear automáticamente una rama para cada implementación de vista previa.
  • Recuperación en un Punto en el Tiempo (PITR): Neon conserva un historial de cambios (registros WAL) durante una ventana de restauración configurable (por ejemplo, 6 horas en Free, hasta 30 días en los planes Scale). Esto permite a los usuarios crear una rama desde cualquier punto en el pasado dentro de esta ventana, "viajando en el tiempo" de manera efectiva para recuperarse de errores o analizar estados históricos.

La CLI neonctl es central para administrar estas ramas:

# Crear una nueva rama desde 'main'
neonctl branch create my-feature-branch --parent-branch-name main

# Crear una rama desde un punto específico en el tiempo (por ejemplo, 1 hora atrás)
neonctl branch create bugfix-branch --parent-branch-name production --point-in-time "1 hour ago"

# Listar ramas
neonctl branch list

Cada rama obtiene su propio punto final de cómputo de escalado automático independiente, evitando problemas de "vecinos ruidosos" y garantizando un rendimiento constante. Cuando están inactivos, estas ramas también se reducen a cero, optimizando los costos.

PlanetScale's Vitess-Powered MySQL: Una Lente Comparativa para PostgreSQL

Si bien PlanetScale históricamente ha sido sinónimo de Vitess-powered MySQL, su reciente entrada en el espacio de PostgreSQL administrado con PlanetScale for Postgres y el proyecto en curso Neki para PostgreSQL fragmentado son significativos. Esto proporciona una excelente oportunidad para comparar y contrastar filosofías arquitectónicas, especialmente con respecto a la escalabilidad horizontal.

El Modelo de Fragmentación de Vitess y su Influencia

Vitess, nacido en YouTube, es un sistema de clustering de bases de datos que permite la escalabilidad horizontal de MySQL a través de la fragmentación explícita. Logra esto enrutando consultas a través de proxies VTGate, que comprenden el esquema de fragmentación y dirigen las consultas a los fragmentos apropiados. Vitess abstrae la complejidad de la fragmentación de la capa de aplicación, lo que permite a las aplicaciones interactuar con lo que parece ser una sola base de datos MySQL monolítica.

Las versiones recientes de Vitess, como Vitess 21 (octubre de 2024) y Vitess 23 (noviembre de 2025), se han centrado en mejorar la compatibilidad de consultas, mejorar la administración del clúster y expandir las capacidades de VReplication. Vitess 21 introdujo soporte experimental para transacciones distribuidas atómicas y CTE recursivas, abordando limitaciones de larga data en SQL distribuido. Vitess 23 refinó aún más las métricas para el enrutamiento de transacciones y el comportamiento de los fragmentos, y actualizó su versión predeterminada de MySQL a 8.4.6, lo que indica un compromiso con la compatibilidad futura.

PlanetScale for Postgres y Project Neki

PlanetScale lanzó oficialmente su servicio PostgreSQL administrado, construido para rendimiento y confiabilidad en AWS o Google Cloud, a finales de 2025. Esta oferta aprovecha sus clústeres "Metal", que están construidos sobre unidades NVMe locales para proporcionar "IO ilimitado" y latencias significativamente más bajas en comparación con las instancias respaldadas por EBS tradicionales. El clúster M-10, a partir de $50/mes, hace que el rendimiento NVMe sea más accesible.

El desarrollo crítico aquí es el Proyecto Neki, la iniciativa de PlanetScale para llevar la fragmentación de estilo Vitess a PostgreSQL. A diferencia de Vitess, que fue de código abierto desde el principio, Neki se está diseñando desde cero, aprovechando las lecciones de Vitess pero no como un fork. Esto indica una inversión seria en la resolución de los desafíos de escalabilidad horizontal de PostgreSQL a un nivel fundamental, en lugar de simplemente adaptar una solución MySQL existente.

Mientras tanto, Supabase también ha realizado un movimiento significativo en el espacio de fragmentación de PostgreSQL al incorporar a Sugu Sougoumarane, co-creador de Vitess, para liderar el proyecto Multigres. Multigres tiene como objetivo llevar la fragmentación a PostgreSQL, también comenzando desde cero pero con un enfoque en la compatibilidad y la usabilidad, aprendiendo del viaje de Vitess. Esto señala una fascinante carrera para ofrecer soluciones de fragmentación de PostgreSQL nativas robustas.

Benchmarking la Promesa "Serverless": Latencia, Rendimiento y Costo

La promesa de las bases de datos serverless es la elasticidad, la baja sobrecarga operativa y la rentabilidad. Sin embargo, estos beneficios a menudo vienen con características de rendimiento que difieren de las instancias aprovisionadas tradicionales.

Latencia de Inicio en Frío y Gestión de Conexiones

Uno de los inconvenientes más discutidos en los entornos serverless es la latencia de inicio en frío. Para Neon, cuando un nodo de cómputo se escala a cero, reactivarlo puede tardar entre 500 ms y unos pocos segundos, dependiendo de factores como el tamaño de la base de datos y la carga de trabajo. Esta latencia puede ser problemática para las solicitudes síncronas orientadas al usuario.

Neon mitiga esto con su pool de conexiones (PgBouncer). Al usar una cadena de conexión con pool, las aplicaciones se conectan a PgBouncer, que mantiene conexiones abiertas a la instancia PostgreSQL subyacente. Esto reduce significativamente la sobrecarga de establecer una nueva conexión TCP y autenticarse con PostgreSQL para cada solicitud de cliente, enmascarando efectivamente parte de la latencia de inicio en frío de la perspectiva de la aplicación.

Inicio en Frío Comparativo (Ilustrativo, no un benchmark directo):

  • Neon (cómputo escalado a cero): ~500ms - 2s (primera conexión después de la inactividad)
  • Supabase Edge Function (inicio en frío): ~100ms - 500ms (primera invocación después de la inactividad)
  • PlanetScale (Metal aprovisionado): Latencia de inicio en frío cercana a cero debido a las instancias siempre activas y respaldadas por NVMe.

Rendimiento y Rendimiento de E/S

Para las cargas de trabajo sostenidas, la infraestructura subyacente es primordial. Los clústeres "Metal" de PlanetScale, con unidades NVMe locales, apuntan explícitamente a un alto rendimiento y baja latencia. Afirman "IOPS ilimitados" donde los clientes normalmente alcanzan los límites de la CPU antes de los cuellos de botella de E/S, con latencias p95 que caen de ~45 ms a 5-10 ms después de migrar a Metal.

El modelo de almacenamiento desagregado de Neon, si bien permite la elasticidad, introduce saltos de red entre el cómputo y el almacenamiento. Para contrarrestar la posible degradación del rendimiento, Neon emplea una Caché de Archivos Local (LFC) entre los buffers compartidos de PostgreSQL y el almacenamiento remoto. Esta LFC aprovecha la caché de páginas de Linux, con el objetivo de proporcionar latencias similares a la RAM para los datos accedidos con frecuencia, desbordándose al disco cuando la LFC excede la capacidad de la RAM.

El rendimiento de Supabase está ligado a su proveedor de nube subyacente y a la asignación de recursos de sus instancias PostgreSQL administradas. El enfoque de la arquitectura v2 en microservicios para servicios como Realtime y Storage tiene como objetivo proporcionar recursos más dedicados a la base de datos en sí, lo que podría mejorar el rendimiento de referencia y la consistencia.

Modelos de Costos

  • Neon: Precios basados en el consumo, escalando el cómputo a cero cuando está inactivo, lo que lo hace muy rentable para el desarrollo, las pruebas y las cargas de trabajo con ráfagas.
  • Supabase: Ofrece un nivel gratuito generoso, con planes de pago basados en horas de cómputo, almacenamiento y mensajes en tiempo real.
  • PlanetScale: Históricamente conocido por sus precios basados en el uso para Vitess, su nueva oferta de PostgreSQL incluye clústeres Metal a partir de $50/mes, proporcionando una opción dedicada y de alto rendimiento.

Experiencia del Desarrollador e Integración del Ecosistema: CLI, API y Frameworks

La destreza técnica de una plataforma es tan buena como su usabilidad. Las tres plataformas priorizan la experiencia del desarrollador a través de herramientas CLI robustas, API completas e integración perfecta con pilas de desarrollo modernas.

  • Supabase CLI: La supabase CLI es una herramienta central para el desarrollo local, la gestión de migraciones y la implementación de Edge Functions. Las actualizaciones recientes en 2025 incluyen la capacidad de implementar Edge Functions desde la CLI sin Docker.
  • Neon CLI (neonctl): neonctl proporciona un control completo sobre los proyectos de Neon, incluida la creación y gestión de ramas. Es crucial para automatizar los flujos de trabajo de CI/CD.
  • PlanetScale CLI: La CLI de PlanetScale es muy apreciada por la gestión de clústeres Vitess y ahora se extiende a sus ofertas de PostgreSQL, lo que permite a los desarrolladores interactuar con los flujos de trabajo de ramificación y los cambios de esquema.

El Camino a Seguir: Desafíos y Patrones Emergentes

A pesar de los rápidos avances, persisten varios desafíos y están surgiendo nuevos patrones. Lograr implementaciones de PostgreSQL verdaderamente consistentes y sólidas en múltiples regiones sigue siendo complejo. La fragmentación, como la perseguida por Neki (PlanetScale) y Multigres (Supabase), es un paso hacia la escalabilidad horizontal, pero garantizar lecturas y escrituras de baja latencia y fuertemente consistentes en regiones geográficamente distantes es un problema más difícil.

El "Ciclo Súper de la IA" también está impactando profundamente la innovación de bases de datos. PlanetScale anunció la disponibilidad general del soporte de vectores en MySQL en abril de 2025, lo que permite almacenar datos de vectores junto con datos relacionales. Supabase también ha apoyado durante mucho tiempo pgvector para la búsqueda de similitudes eficiente. Esta tendencia sugiere que las bases de datos se volverán más "inteligentes", no solo almacenando datos sino también ayudando activamente en su interpretación y aplicación dentro de los flujos de trabajo de la IA.

Conclusión: Consideraciones Prácticas para las Implementaciones de Producción

Los desarrollos recientes en Supabase, Neon y PlanetScale subrayan un ecosistema vibrante y en rápida evolución para PostgreSQL. Cada plataforma ofrece distintas ventajas para casos de uso específicos:

  • Neon sobresale para las aplicaciones serverless de nueva creación y los flujos de trabajo de desarrollo que se benefician de la ramificación instantánea y la rentabilidad de la escala a cero.
  • Supabase presenta un BaaS completo convincente, aprovechando PostgreSQL en su núcleo y enriqueciéndolo con potentes capacidades en tiempo real y Edge Functions flexibles.
  • PlanetScale ha realizado una sólida entrada en el mercado de PostgreSQL con sus clústeres Metal de alto rendimiento y el ambicioso proyecto de fragmentación Neki.

Para un desarrollador senior que evalúa estas opciones, la elección depende de la previsibilidad de la carga de trabajo, la criticidad de la ramificación tipo Git y si necesita un BaaS completo o principalmente una base de datos con características de escalabilidad avanzadas. La innovación continua, particularmente en torno a la desagregación arquitectónica y la experiencia del desarrollador, indica un futuro prometedor para las bases de datos relacionales altamente escalables y resistentes en la nube.


Fuentes


🛠️ Herramientas Relacionadas

Explora estas herramientas de DataFormatHub relacionadas con este tema:


📚 También Podrías Gustar