Edge computing sem hype: performance começa no caminho

Publicado em

Edge computing melhora performance quando tira do servidor central decisões pequenas, frequentes e previsíveis. O ponto não é mover a aplicação inteira para a borda, mas reduzir a distância entre usuário, cache, roteamento e validações simples sem perder controle operacional.

Onde a latência realmente aparece?

Em uma aplicação web, performance não é só tempo de execução do backend. Existe DNS, TLS, negociação HTTP, distância física, fila no balanceador, tempo de origem, cache, download do HTML e renderização no navegador. Uma API que responde em 40 ms dentro do data center pode virar uma experiência lenta quando o usuário está a 8.000 km da região principal.

Esse é o espaço em que edge computing faz sentido. Em vez de mandar toda requisição para uma região central, uma camada distribuída toma decisões perto do usuário: entregar HTML cacheado, aplicar redirect, bloquear tráfego inválido, escolher variante de idioma, validar um token assinado ou responder uma configuração pública.

Um redirecionamento feito na origem exige ida até o servidor e volta para o navegador. O mesmo redirect resolvido em um ponto de presença próximo pode economizar uma viagem inteira. A borda também pode reduzir TTFB, enquanto o frontend cuida de LCP, INP e estabilidade visual.

Diagrama de infraestrutura web com servidores distribuídos próximos dos usuários
Diagrama de infraestrutura web com servidores distribuídos próximos dos usuários

O que deve rodar na borda?

A borda é boa para lógica curta, determinística e barata. Ela é ruim para transações complexas, dependência forte de banco central e processamento longo. Essa distinção evita transformar edge functions em uma segunda aplicação, sem as garantias da aplicação principal.

  • Bom candidato: redirects, canonicalização de URL, detecção de país, cache de HTML público, headers de segurança, rate limit e feature flag simples.
  • Candidato com cuidado: autenticação leve, personalização por segmento, renderização parcial e leitura de configuração replicada.
  • Evite na borda: pagamento, pedido, saldo, permissão crítica, escrita transacional e qualquer fluxo que precise de consistência forte imediata.

Um exemplo realista é uma loja com páginas públicas de categoria. A origem monta o HTML com preço agregado, filtros e conteúdo editorial. A borda armazena a resposta por alguns minutos, separando versões por país e tipo de dispositivo. O estoque final e o checkout continuam na origem.

Cache-Control: public, max-age=60, s-maxage=300, stale-while-revalidate=86400
Vary: Accept-Encoding, X-Country, X-Device-Class
Server-Timing: edge;dur=4, origin;dur=0, cache;desc=HIT

Essa configuração diz três coisas importantes. O navegador pode reutilizar a resposta por 60 segundos, o cache compartilhado por 300 segundos e a CDN pode servir uma versão antiga enquanto revalida por até 24 horas. O header Server-Timing ajuda a enxergar se a resposta veio da borda ou se bateu na origem.

HTTP 103 Early Hints também entra nessa conversa. Ele permite enviar pistas de preload ou preconnect antes da resposta final, enquanto o servidor ainda prepara o HTML. Não substitui cache, mas pode antecipar CSS, fonte ou bundle principal.

Quais limites mudam a arquitetura?

Ambientes edge têm limites diferentes de servidores tradicionais. Cloudflare Workers, por exemplo, usa cobrança baseada em requisições e tempo de CPU; a documentação de preços mostra exemplos com média de 7 ms de CPU por request. Na AWS, CloudFront Functions são voltadas para manipulações muito rápidas, enquanto Lambda@Edge aceita lógica mais flexível, mas com restrições de runtime, evento e replicação.

Esses detalhes importam porque a arquitetura precisa caber no modelo de execução. Bibliotecas nativas, filesystem persistente, conexões longas com banco, processos em background e jobs de minutos não combinam com a maioria dos runtimes de borda. Mesmo quando a plataforma permite mais tempo, a pergunta correta é se faz sentido executar aquilo em dezenas ou centenas de locais.

Outro limite é o número de variações de cache. Uma página variada por 5 países, 2 idiomas, 3 tipos de dispositivo e 4 grupos de experimento gera até 120 combinações. Se cada versão tem baixa reutilização, o cache perde eficiência e a origem continua trabalhando.

Por isso, a modelagem deve separar estado em três camadas:

  1. Estado público: conteúdo, assets, regras de redirect e configurações que podem ser cacheadas ou replicadas.
  2. Estado de sessão: cookies assinados, plano do usuário e preferências simples, usados apenas para escolher rota ou variante.
  3. Estado transacional: dados que exigem consistência, auditoria e escrita controlada, como pedidos, pagamentos e permissões críticas.

Observabilidade fecha a conta. Logs só na origem deixam invisíveis erros de redirect, cache poisoning, bloqueios por regra e falhas em regiões específicas. Cada resposta deveria carregar request ID, cache status, versão da função, região e tempo de origem quando houver chamada externa.

Como começar sem criar uma plataforma paralela?

O melhor começo é medir o caminho atual. Liste as 20 rotas mais acessadas, o TTFB por país, a taxa de cache, o custo de origem e os redirects mais frequentes. Em muitos projetos, corrigir cache headers e mover redirects já reduz mais carga do que reescrever renderização.

Depois escolha um caso pequeno e reversível. Uma boa primeira entrega costuma ser: normalizar URLs na borda, adicionar cache de HTML para páginas públicas, registrar Server-Timing e criar um rollback simples. Isso dá ganho mensurável sem acoplar regra de negócio crítica ao provedor de edge.

Também trate código de borda como infraestrutura versionada. Regex de redirect precisa de teste. Regra de cache precisa de revisão. Mudança de header precisa passar por staging. Um erro em Cache-Control pode vazar conteúdo personalizado; um redirect mal escrito pode quebrar SEO, mídia paga e login.

O objetivo técnico é simples: menos viagens até a origem, menos trabalho repetido e mais previsibilidade no caminho da requisição. Edge computing funciona quando a borda é uma camada explícita de performance e proteção, não um lugar conveniente para esconder complexidade.

Perguntas frequentes

O que é edge computing na infraestrutura web?

É executar cache, regras e pequenas partes da lógica da aplicação em pontos de presença próximos do usuário. Isso reduz latência e diminui carga na origem quando a decisão é curta e previsível.

Edge computing melhora Core Web Vitals?

Pode melhorar TTFB e ajudar o LCP quando o HTML inicial chega mais rápido. INP e CLS ainda dependem de JavaScript, renderização, fontes e estabilidade de layout.

Qual a diferença entre CDN e edge computing?

CDN tradicional distribui e cacheia arquivos ou respostas. Edge computing adiciona execução de código na borda para roteamento, validação, personalização simples e proteção de tráfego.

Quando não vale a pena usar edge computing?

Não vale a pena para lógica transacional crítica, processos longos ou fluxos que sempre precisam consultar um banco central distante. Nesses casos, a borda pode filtrar e acelerar o caminho, mas não deve assumir a decisão principal.