Voltar ao blog
Tutorial

Edge computing na prática: auth e redirects

Por Flávio Emanuel · · 7 min de leitura

Quando alguém fala edge computing, todo mundo pensa em infraestrutura complexa. Datacenters no mundo inteiro, arquitetura distribuída, coisas que gigantes como Netflix fazem. Verdade é que você já pode usar isso no seu site agora. Sem complexidade.

Edge computing é simplesmente código que roda mais perto do usuário em vez de rodar tudo num servidor central. Seu usuário está em São Paulo, o servidor está em São Paulo. Seu usuário está em Nova York, o código roda perto lá. Latência cai drasticamente.

Middleware no Astro

Astro 3.0+ suporta middleware nativamente. É um arquivo que roda antes de qualquer rota ser carregada.

// src/middleware.ts
import { defineMiddleware } from "astro:middleware";

export const onRequest = defineMiddleware((context, next) => {
  // Auth check
  if (!context.cookies.has("session")) {
    return new Response("Unauthorized", { status: 401 });
  }

  return next();
});

Isso roda na edge se você está na Vercel. Rápido. Sem cold start. Quando alguém tenta acessar sua página sem autenticação, o middleware bloqueia antes do site fazer qualquer processamento.

Usei isso numa clínica que tem sistema de agendamento. Usuário não autenticado? Redireciona. Usuário é dentista? Mostra dashboard diferente. Tudo na edge, antes de qualquer componente React render.

Redirects por geo-localização

Vercel Edge Functions permite saber a localização do usuário sem ele consentir. Informação vem do header cf-ipcountry se você está atrás de Cloudflare, ou x-vercel-ip-country na Vercel.

export default function middleware(request) {
  const country = request.headers.get("x-vercel-ip-country");

  if (country === "BR") {
    return NextResponse.rewrite(new URL("/pt", request.url));
  }

  return NextResponse.rewrite(new URL("/en", request.url));
}

Seu usuário em São Paulo vê site em português. Mesmo usuário viaja pra Lisboa, vê site em português (porque IP português também cai). Viaja pra Tóquio, pode ver em inglês ou português dependendo da sua lógica.

Isso é potente pra SEO porque Google consegue rastrear ambas versões do site na mesma URL.

A/B testing na edge

Teste A/B tradicional roda no navegador. Você carrega página, executa JavaScript, mostra versão A ou B. Problema é que isso causa “flicker”: o usuário vê versão default por 100ms, depois muda. Péssima UX.

Edge A/B testing mostra a versão correta logo de primeira porque o redirect acontece antes da página renderizar.

export default function middleware(request) {
  const abTest = Math.random() > 0.5 ? "a" : "b";
  const response = NextResponse.next();
  response.cookies.set("ab_variant", abTest);

  if (abTest === "a") {
    return NextResponse.rewrite(new URL("/pages/variant-a", request.url));
  }

  return NextResponse.rewrite(new URL("/pages/variant-b", request.url));
}

Agora você está testando design, copy, fluxo de conversão. Sem piscar. Sem JavaScript rodando no cliente. Métricas mais limpas.

Auth sem cold start

Tradicional você faz request pra um endpoint de auth, espera resposta, valida JWT. Tudo rodando no servidor.

Na edge você valida o token inline. Sem fazer request pra lugar nenhum.

import { jwtVerify } from "jose";

const secret = new TextEncoder().encode(process.env.JWT_SECRET);

export async function validateToken(token) {
  try {
    const verified = await jwtVerify(token, secret);
    return verified.payload;
  } catch (err) {
    return null;
  }
}

Esse código roda na edge, valida em microsegundos, não precisa fazer roundtrip pra banco. É rápido pra caramba.

Para clínicas onde agendamento é privado por usuário, eu coloco esse check na edge. Alguém tenta burlar? Bloqueio antes de página carregar.

Vercel Edge Functions vs Cloudflare Workers

Vercel Edge Functions usa V8 runtime, é JavaScript puro. Fácil de deployar se você já usa Vercel. Custa incluído no plano, sem cobrança adicional pra maioria dos casos.

Cloudflare Workers é mais barato (grátis até 100k requests/dia) e mais rápido. Você pode fazer caching agressivo. Problema é que não roda Ruby, só JavaScript. E a integração com seu site varia.

Eu uso Vercel Edge Functions pra sites em Vercel. Cloudflare Workers pra sites que estão em outro lugar mas precisam de edge caching.

Casos reais de uso

Site de clínica que precisa mostrar horários diferentes por timezone. Edge middleware detecta timezone do usuário, injeta horários certos.

E-commerce que quer mostrar preço em moeda local. Detecta país, converte automático. Sem JavaScript no cliente.

Sistema de feature flags. Você libera funcionalidade nova só pra 10% dos usuários. Control flow na edge, sem atingir banco.

A armadilha

Edge computing pode fazer você refatorar código inteiro desnecessariamente. Comece verificando: sua latência é problema? Seu site carrega lento?

Se sim, edge computing ajuda. Se seu site carrega em 2 segundos, edge computing não vai fazer diferença mágica.

Comece com algo simples. Um redirect por geo. Um auth check. Depois expande.

  • Verifique se seu deploy é Vercel, Netlify ou Cloudflare
  • Configure middleware básico de auth
  • Adicione geo-redirect se tiver múltiplos idiomas
  • Implemente A/B test simples
  • Monitore latência antes e depois
  • Documente sua estratégia de edge

Edge computing é ferramenta, não solução mágica. Use quando fazer sentido.

Monitoramento de edge functions

Uma coisa que ninguém fala: edge functions falham silenciosamente. Erro no middleware? Usuário recebe erro 500. Você fica de boa sem saber.

Vercel fornece logs. Sempre ativei. Vejo erros que middleware tá jogando.

Cloudflare também. Dashboard mostra requests que falharam.

Configurei alertas. Se uma edge function falha 10 vezes em 1 hora, me notifica. Porque edge está rodando em muita máquina ao mesmo tempo, é fácil não perceber.

Custo de edge functions

Vercel: incluído no plano, sem custo adicional pra maioria.

Cloudflare: grátis até 100k requests/dia. Acima disso, paga. Mas é barato, tipo 0.50 USD por 1M requests.

Nunca paguei por Cloudflare Workers. Sempre fico abaixo de 100k.

Edge computing não é caro. É barato demais.

Debugging edge functions

Erro em edge é difícil de debugar. Não é local. Está rodando em servidor distante.

Dica: faça logs agressivos. Cada passo do seu middleware, loga.

export const onRequest = defineMiddleware((context, next) => {
  console.log('Middleware start')
  const token = context.cookies.get('auth')
  console.log('Token:', token)

  if (!token) {
    console.log('No token, returning 401')
    return new Response("Unauthorized", { status: 401 })
  }

  console.log('Token found, calling next')
  return next()
})

Depois vê logs em Vercel dashboard. Entende por que falhou.

Outra coisa: teste local primeiro. Vercel oferece astro dev que executa middlewares localmente. Testa lá antes de fazer deploy.

Performance real de edge

Latência com edge: 50ms. Latência sem edge (origem): 300ms. Diferença é notável.

Mas só se você tá fazendo operação que importa na edge. Se middleware fica verificando JWT com operação complexa, não ganha muito.

Se é simplesmente redirect, ganha muito.

Medição: antes coloquei geo-redirect com edge. Tempo de resposta inicial? 100ms mais rápido.

Depois removi pra testar. Voltou pro original. Voltei a colocar.

Diferença real, medível, perceptível pra usuário.

Roadmap de edge

Comece com 1 coisa. Auth check ou geo-redirect. Deploy, testa.

Mês 2: adiciona A/B test.

Mês 3: pensa em feature flags.

Não tenta fazer tudo de uma vez. Edge computing tem overhead cognitivo. Cada coisa que você coloca lá é coisa a menos pra pensar no servidor.

Mas bem planejado, edge sai barato demais.

Leia também: Cloudflare como infraestrutura completa | Deploy além da Vercel | Core Web Vitals em 2026

Próximo passo

Precisa de um dev que entrega de verdade?

Seja pra um projeto pontual, reforço no time, ou parceria de longo prazo. Vamos conversar.

Falar no WhatsApp

Respondo em até 2h durante horário comercial.