Edge Functions Não Resolvem um Banco de Dados Lento

Edge computing trouxe uma promessa real: rodar seu código num data center perto do usuário em vez de uma única região central, e cortar o tempo de ida e volta que a física, de outra forma, cobraria de você. Para conteúdo estático e lógica simples, essa promessa em geral se confirma. Para qualquer coisa que toque um banco de dados, é fácil acabar otimizando os milissegundos errados.

Pra onde o tempo realmente vai

Uma requisição de API típica gasta o tempo mais ou menos assim: ida e volta de rede até o servidor, lógica de aplicação, uma ou mais queries no banco, depois a volta. Mover a lógica de aplicação pra edge só encolhe a primeira e a última parte. Se o seu banco de dados vive numa única região e a sua edge function agora precisa atravessar o globo pra consultá-lo, você pode acabar com uma requisição mais lenta do que antes — a edge function em si roda rápido, e depois fica esperando uma conexão de banco que tem que cruzar a mesma distância que cruzava antes.

Isso não é um argumento contra edge functions. É um lembrete de que "mais perto do usuário" só ajuda as partes da requisição que de fato dependiam de rede pra começo de conversa.

A correção de verdade geralmente é localidade de dados

Se uma query é o gargalo, a correção raramente é "fazer a função que a chama rodar em algum lugar chique". É tornar o próprio dado disponível mais perto de onde ele é consultado — réplicas de leitura em várias regiões, cache compatível com edge para dados que toleram alguma defasagem, ou aceitar que algumas operações são inerentemente regionais e rotear de acordo. Edge compute e edge data são dois problemas diferentes, e resolver o primeiro sem tocar no segundo geralmente só realoca onde a latência aparece no seu trace, não quanto dela existe.

Uma pergunta útil antes de migrar pra edge

Antes de mover uma função pra edge, faça o profiling do que ela realmente está esperando. Se a maior parte do tempo dela é gasta esperando uma query de banco ou uma API de terceiros numa região fixa, rodar a função em si mais perto do usuário compra muito pouco — a parte lenta não se moveu. Edge functions são uma boa resposta para "o salto de rede é o gargalo". Não são resposta para "a query é lenta", e confundir os dois é uma das formas mais comuns de uma migração pra edge entregar menos do que prometeu em latência.

Vamos conversar?

Tem um projeto, uma vaga ou só quer trocar uma ideia sobre o assunto? Envie uma mensagem.

Entrar em contato