Durante la reciente Developer Week 2023, Cloudflare reveló una nueva API de Worker que permite a los desarrolladores establecer sockets TCP salientes. Esta innovadora API de sockets permite a los desarrolladores conectarse sin problemas a infraestructuras basadas en TCP directamente desde un Worker, que ahora incluye bases de datos. Hasta ahora, los Workers sólo podían comunicarse con HTTP endpoints y otros servicios de Cloudflare; sin embargo, la mayoría de las bases de datos requieren que los clientes establezcan sockets TCP directos.
Brendan Irvine-Broque, Director de Producto de Cloudflare, y Matt Silverlock, Director de Producto de Cloudflare, explicaron la nueva API: "Con Workers, nuestro objetivo es dar soporte a APIs estándar que sean compatibles con navegadores y otros entornos siempre que sea posible, (...) pero en el caso de los sockets TCP, nos enfrentamos a un reto: no existía un estándar compartido claro entre los tiempos de ejecución. Hemos intentado incorporar los mejores elementos de las API y propuestas existentes, y tenemos la intención de contribuir a futuros estándares".
El pasado otoño, Cloudflare, Vercel y Shopify crearon WinterCG, un nuevo grupo comunitario dedicado a crear implementaciones interoperables de API web estandarizadas en entornos de desarrollo no basados en navegadores web y JavaScript.
Se puede acceder a la última API importando la función connect de cloudflare:sockets. Aunque el controlador de base de datos JavaScript para PostgreSQL, pg, ya es compatible con la nueva API, los controladores MySQL -mysql y mysql2-aún no lo son. Irvine-Broque y Silverlock advierten que:
Se crea una nueva conexión para cada solicitud. Este es uno de los mayores desafíos actuales de la conexión a bases de datos desde funciones sin servidor, en todas las plataformas (...) ya estamos trabajando en enfoques más simples para la agrupación de conexiones para las bases de datos más populares.
Cloudflare prevé desplegar funciones adicionales en el futuro, como la compatibilidad con conexiones TCP y UDP entrantes, que han sido solicitadas por los desarrolladores, junto con protocolos de aplicación basados en QUIC.
La introducción de la API connect() viene acompañada de otros anuncios interesantes durante la Semana del Desarrollador 2023. Entre ellos, el lanzamiento de Secrets Store para gestionar de forma segura los secretos de las aplicaciones, mejoras en D1 (la base de datos sin servidor de Cloudflare) y concurrencia de consumidores para el servicio de mensajería Queues. Además, Cloudflare ha presentado integraciones de bases de datos para Neon, PlanetScale y Supabase on Workers.
Cada socket TCP abierto contribuye al número máximo de conexiones abiertas que Workers puede mantener simultáneamente. Tenga en cuenta que aún no es posible crear conexiones TCP en el puerto 25 para enviar correos electrónicos a servidores de correo SMTP.
A medida que las plataformas sin código y de bajo código como AppMaster sigan evolucionando, la introducción de funciones como la API connect() impulsará aún más el panorama del desarrollo al agilizar las conexiones y crear nuevas oportunidades para los desarrolladores.