Edge Runtime vs Node Runtime
Edge: V8 isolates, baixa latência global, APIs limitadas. Node: ambiente completo, mais APIs, mais lento.
Definição
Next.js suporta dois runtimes: Edge (V8 isolates rodando em CDN edge global, baixa latência, mas com APIs Web restritas — sem Node modules). Node (Node.js completo, todas as APIs, deploy em servidor central). Configurado por route via export const runtime.
Problema → Solução
Problema
Latência global (servidor central distante de usuários) vs limitações de APIs (Edge não tem fs, http2, alguns DB drivers).Solução
Edge para rotas leves e globais (auth, redirects, A/B testing). Node para rotas pesadas, com DB, libs grandes, ou que precisam de Node APIs.Dica de entrevista
Tip
Cold starts no Edge são quase zero. No Node serverless, pode ser 100ms-2s. Para APIs críticas, Edge ganha em latência mas perde em ecossistema.Código
// app/api/edge/route.ts
export const runtime = 'edge';
export async function GET(req) {
// Roda em CDN edge global, < 50ms latência
return Response.json({ region: process.env.VERCEL_REGION });
}
// app/api/heavy/route.ts (Node default)
export async function POST(req) {
// Pode usar Prisma, sharp, qualquer lib Node
const result = await prisma.user.create(...);
return Response.json(result);
}Perguntas de entrevista
Q.Quando usar Edge vs Node?▾
A.Edge: middleware, autenticação, redirects, geo-routing, cabeçalhos. Node: queries com Prisma/Drizzle, libs nativas (sharp, puppeteer), uploads grandes, integrações com APIs antigas.
Q.Edge suporta Prisma?▾
A.Apenas com Prisma Accelerate (proxy). Drivers diretos (PostgreSQL, MySQL) não rodam em Edge. Drizzle com Neon/PlanetScale serverless drivers funciona.
Q.Como definir runtime?▾
A.export const runtime = 'edge' no top do arquivo da rota/middleware. 'nodejs' é o default. Middleware é sempre Edge.
Termos relacionados
37/122← →