Durante a recente Developer Week 2023, a Cloudflare revelou uma nova API do Worker que permite aos programadores estabelecer sockets TCP de saída. Essa API de soquete inovadora permite que os desenvolvedores se conectem perfeitamente a infraestruturas baseadas em TCP diretamente de um Worker, o que agora inclui bancos de dados. Até agora, os Workers só podiam se comunicar com o HTTP endpoints e outros serviços da Cloudflare; no entanto, a maioria dos bancos de dados exige que os clientes estabeleçam soquetes TCP diretos.
Brendan Irvine-Broque, gerente de produto da Cloudflare, e Matt Silverlock, diretor de produto da Cloudflare, explicaram a nova API: "Com o Workers, nosso objetivo é oferecer suporte a APIs padrão que sejam compatíveis com navegadores e ambientes que não sejam navegadores sempre que possível, (...) mas para soquetes TCP, enfrentamos um desafio - não havia um padrão claro compartilhado entre os tempos de execução. Tentámos incorporar os melhores elementos das API e propostas existentes e tencionamos contribuir para futuras normas."
No Outono anterior, a Cloudflare, a Vercel e a Shopify criaram o WinterCG, um novo grupo comunitário dedicado à criação de implementações interoperáveis de APIs da Web padronizadas em ambientes de desenvolvimento baseados em JavaScript e em browsers não Web.
A API mais recente pode ser acessada importando a função connect de cloudflare:sockets. Embora o driver de banco de dados JavaScript para PostgreSQL, pg, já suporte a nova API, os drivers MySQL - mysql e mysql2 -ainda não a suportam. Irvine-Broque e Silverlock advertem que:
É criada uma nova ligação para cada pedido. Este é um dos maiores desafios atuais de se conectar a bancos de dados a partir de funções serverless, em todas as plataformas (...) já estamos trabalhando em abordagens mais simples para o pooling de conexões para os bancos de dados mais populares.
A Cloudflare prevê o lançamento de recursos adicionais no futuro, como suporte a conexões TCP e UDP de entrada, que foram solicitadas pelos desenvolvedores, juntamente com protocolos de aplicativos baseados em QUIC.
A introdução da API connect() vem junto com vários outros anúncios interessantes durante a Developer Week 2023. Isso inclui o lançamento do Secrets Store para gerenciar com segurança segredos de aplicativos, melhorias no D1 (banco de dados sem servidor da Cloudflare) e simultaneidade do consumidor para o serviço de mensagens Queues. Além disso, a Cloudflare revelou integrações de banco de dados para Neon, PlanetScale e Supabase on Workers.
Cada soquete TCP aberto contribui para o número máximo de conexões abertas que os Workers podem manter simultaneamente. Observe que ainda não é possível criar conexões TCP na porta 25 para enviar e-mails para servidores de e-mail SMTP.
À medida que as plataformas sem código e com pouco código, como o AppMaster, continuam a evoluir, a introdução de recursos como a API connect() impulsionará ainda mais o cenário de desenvolvimento, simplificando as conexões e criando novas oportunidades para os desenvolvedores.