Edge functions: o que são e quando vale a pena pra performance
Edge functions rodam código próximo do usuário. Reduzem latência em 50-200ms. Veja quando vale, quando não, e como começar com Cloudflare Workers.
Equipe Máximo do Marketing
Máximo do Marketing
Latência de servidor pode quebrar conversão de e-commerce: cada 100ms a mais = -1% de conversão (estudo Cloudflare, 2025).
Edge functions prometem resolver isso: código que roda próximo do usuário geograficamente, não num servidor central distante.
Mas há trade-offs reais. Esse artigo é o panorama prático: o que são, quando valem, quando ignorar, e como começar.
O que é edge function
Edge function = código JavaScript/TypeScript (ou WebAssembly) que roda em centenas de data centers próximos do usuário final, em vez de servidor único.
Imagina:
- Servidor tradicional: cliente brasileiro pede → vai pra Virginia (180ms) → volta (180ms) = 360ms ida e volta
- Edge function: cliente brasileiro pede → roda em São Paulo (10ms) → volta (10ms) = 20ms
Ganho típico: 100-300ms de latência reduzida dependendo da geografia.
Os 4 maiores provedores
| Provedor | Pontos POP | Free tier | Linguagens |
|---|---|---|---|
| Cloudflare Workers | 320+ globalmente, BR inclui SP e BSB | 100k req/dia grátis | JS/TS, WASM, Python (alpha) |
| Vercel Edge Functions | 30+ regions | Limitado | JS/TS |
| Netlify Edge Functions | 30+ regions | Limitado | JS/TS (Deno) |
| AWS Lambda@Edge | 13 regions | Limitado | Node.js |
Cloudflare Workers é a mais barata e mais completa. Recomendamos pra maioria.
Quando edge function vale MUITO
1. Autenticação rápida (auth gate)
Verificar JWT/session antes de servir conteúdo. Reduz latência de auth em ~150ms.
Exemplo: rota /admin precisa verificar login. Sem edge, request vai pro server central. Com edge, autentica próximo.
2. A/B testing sem flicker
Mostra variação A ou B baseado em cookie/session antes do HTML chegar no browser. Sem flash de conteúdo errado.
3. Geo-redirecionamento
Detecta país do usuário, redireciona pra versão local.
Exemplo: usuário do Brasil → site.com.br. Usuário de Portugal → site.com.
4. Personalização de conteúdo
Mudar header, conteúdo, ofertas baseado em região, dispositivo, hora.
5. Rate limiting global
Limitar requests por IP em escala (Cloudflare Workers é excelente nisso).
6. Image optimization on the fly
Servir versão otimizada de imagem dependendo do dispositivo/conexão.
7. API edge
APIs que respondem em < 50ms globalmente. Útil pra dashboard interativo, busca instant.
Quando edge function NÃO vale
❌ Operações com banco de dados central Edge roda em SP, mas seu Postgres está em Virginia? Latência volta pro normal. Edge só ajuda em operações que não precisam do banco.
Solução: ter banco distribuído (Cloudflare D1, Turso, PlanetScale) — mas isso é stack diferente.
❌ Long-running compute Edge functions têm limites duros (10-30s normalmente, alguns 60s). Tarefa pesada (gerar PDF complexo, processar imagem grande): vai pra servidor tradicional.
❌ Operações com muito código Edge tem limites de tamanho do código (5-50 MB dependendo do provider). Aplicação complexa demais não cabe.
❌ Stateful Edge functions são stateless. Cada execução é independente.
Como começar com Cloudflare Workers (5 min)
1. Conta Cloudflare (já tem)
dash.cloudflare.com
2. Workers → Create
Cria worker novo. Te dá editor inline.
3. Escreve seu primeiro worker
export default {
async fetch(request, env) {
const url = new URL(request.url);
// Detecta país do usuário
const country = request.cf?.country || 'BR';
// Resposta customizada
return new Response(`Olá, visitante do ${country}!`, {
headers: { 'content-type': 'text/plain' }
});
}
};
4. Deploy
Botão “Save and Deploy”. Em 5 segundos, URL pública.
5. Conectar com seu domínio
Triggers → Add Custom Domain → digita api.seusite.com.br (configurado no Cloudflare).
Pronto. Edge function em produção.
Caso prático — autenticação no edge
Cliente nosso de SaaS B2B, antes:
- Frontend chama
/api/dashboard - Backend (us-east) valida JWT
- Roda query no Postgres (us-east)
- Devolve dados
- Latência total Brasil → US → Brasil: 700-900ms
Depois com edge:
- Frontend chama
/api/dashboard - Edge (SP) valida JWT localmente (chave HMAC compartilhada)
- Se válido, chama backend (us-east) com user_id confirmado
- Latência total: 400-500ms (40% redução)
Implementação: 2 dias dev. Ganho: experiência muito mais fluida.
Code patterns típicos
Pattern 1: Cache na borda
export default {
async fetch(request, env, ctx) {
const cache = caches.default;
let response = await cache.match(request);
if (response) return response;
response = await fetch(request);
ctx.waitUntil(cache.put(request, response.clone()));
return response;
}
};
Resposta cacheada perto do usuário. Reduz hits no servidor central.
Pattern 2: Geo routing
const country = request.cf?.country;
if (country === 'BR') {
return fetch('https://api-br.seusite.com' + new URL(request.url).pathname);
} else {
return fetch('https://api-us.seusite.com' + new URL(request.url).pathname);
}
Pattern 3: A/B test sem flicker
const cookie = request.headers.get('cookie');
const variant = cookie?.includes('variant=B') ? 'B' : 'A';
const response = await fetch(`https://origin.com/page-${variant}`);
return response;
Limites importantes (Cloudflare)
| Limite | Worker Free | Worker Paid |
|---|---|---|
| Requests/dia | 100.000 | Ilimitado |
| CPU time/req | 10ms | 30s |
| Memory/req | 128 MB | 128 MB |
| Subrequests/req | 50 | 1000 |
| Tamanho código | 1 MB | 10 MB |
Pra maioria dos casos, free tier vai bem pra começar.
Custo realista
Cenário: site BR com 500k pageviews/mês, usando edge functions pra auth + cache:
- Cloudflare Workers Paid: $5/mês mínimo + $0.30 por milhão de requests
- 500k requests = ~$5 (mínimo)
Custo absurdamente baixo pra benefício.
Quando rolar pra edge vs manter no servidor tradicional
| Cenário | Decisão |
|---|---|
| App brasileiro com banco em SP | Servidor regular tá ok |
| App brasileiro com banco em US | Edge ajuda muito |
| API que responde com cache estático | Edge perfeito |
| API que escreve no banco a cada call | Servidor regular, sem edge |
| Dashboard com auth | Edge pra auth |
| Processamento de upload de arquivo grande | Servidor regular |
Os 5 erros que vimos times cometerem
❌ Mover TUDO pra edge: nem todo código quer edge. Avalia caso a caso.
❌ Edge sem cache: edge sem cache de respostas perde 60% do benefício.
❌ Não monitorar custos: free tier é generoso, mas escalou e fica caro rápido sem perceber.
❌ Confundir edge com serverless tradicional: AWS Lambda ≠ Cloudflare Workers. Modelos diferentes.
❌ Edge function pesada: tentando fazer demasiado num único worker = lento, erros.
ROI real
Pra negócio com:
- 200k+ requests/mês
- Servidor central em outro continente
- Operações que se beneficiam de cache
Migração das operações certas pra edge frequentemente entrega:
- -30 a -60% de latência média
- +5-15% de conversion rate (e-commerce especialmente)
- -20-50% de custo de servidor central (offload de tráfego)
Em projeto típico: paga em 2-3 meses.
A Máximo monta arquitetura edge-aware pra clientes. Fala com a gente.
Quer aplicar isso na sua empresa?
A gente faz um diagnóstico gratuito e mostra o caminho mais curto pra você crescer com previsibilidade.
Quero meu diagnóstico