Edge Functions di Vercel
Vercel Edge Functions menjalankan kode di edge network menggunakan V8 runtime (sama seperti Cloudflare Workers). Terintegrasi sempurna dengan Next.js.
Edge Middleware
// middleware.ts (Next.js)
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
export function middleware(request: NextRequest) {
// Redirect berdasarkan geolocation
const country = request.geo?.country || "US";
if (country === "ID") {
return NextResponse.rewrite(new URL("/id", request.url));
}
// Auth check
const token = request.cookies.get("session");
if (!token && request.nextUrl.pathname.startsWith("/dashboard")) {
return NextResponse.redirect(new URL("/login", request.url));
}
return NextResponse.next();
}
export const config = {
matcher: ["/((?!_next|static|favicon.ico).*)"],
};
Edge API Routes
// app/api/hello/route.ts
export const runtime = "edge"; // Deploy ke edge, bukan serverless
export async function GET(request: Request) {
return Response.json({
message: "Hello from edge!",
region: process.env.VERCEL_REGION,
});
}
Kapan Edge vs Serverless?
- Edge — Auth, redirects, A/B testing, geolocation, caching. Tidak bisa akses Node.js APIs penuh.
- Serverless — Database queries, file processing, heavy computation. Full Node.js runtime.