Kembali ke Blog
Web Development#vercel#edge functions#nextjs#performance#2026

Vercel Edge Functions: Jalankan Kode di 300+ Lokasi Dunia, Terdekat dengan User

Edge Functions menjalankan kode bukan di satu server terpusat, tapi di edge node terdekat dengan user. Hasilnya: latency turun drastis. Ini cara kerja, limitasi, dan kapan harus pakainya.

Muhamad Putra Aulia Hidayat

Muhamad Putra Aulia Hidayat

4 Maret 20263 menit baca

Vercel Edge Functions: Komputasi di Ujung Jaringan

Bayangkan server Anda tidak ada di satu tempat — tapi ada di mana-mana, di kota yang sama dengan user. Itulah Edge Functions.

Apa itu Edge Runtime?

Edge Functions berjalan di CDN edge nodes — Vercel punya 300+ lokasi di seluruh dunia. Ketika user di Surabaya request ke website Anda, kode akan dieksekusi di edge node terdekat, bukan di server utama di US.

Hasilnya: latency bisa turun dari 200-400ms ke 20-50ms.

Cara Aktifkan di Next.js

// app/api/location/route.ts
export const runtime = "edge" // Ini saja!

export async function GET(request: Request) {
  const { searchParams } = new URL(request.url)
  const name = searchParams.get("name") ?? "World"

  return Response.json({
    message: `Hello, ${name}!`,
    // Vercel inject geo info otomatis
    region: request.headers.get("x-vercel-ip-country"),
    city: request.headers.get("x-vercel-ip-city"),
  })
}

Use Case yang Tepat untuk Edge

1. Personalisasi Berdasarkan Lokasi

export const runtime = "edge"

export async function GET(request: Request) {
  const country = request.headers.get("x-vercel-ip-country")
  const city = request.headers.get("x-vercel-ip-city")

  // Tampilkan konten berdasarkan lokasi user
  const content = country === "ID"
    ? await getIndonesianContent(city)
    : await getDefaultContent()

  return Response.json(content)
}

2. A/B Testing

export const runtime = "edge"

export function middleware(request: NextRequest) {
  const bucket = Math.random() < 0.5 ? "a" : "b"
  const url = request.nextUrl.clone()

  url.pathname = bucket === "a"
    ? "/landing-v1"
    : "/landing-v2"

  const response = NextResponse.rewrite(url)
  response.cookies.set("ab-bucket", bucket, { maxAge: 86400 })
  return response
}

3. Auth Check yang Cepat

export const runtime = "edge"

export async function middleware(request: NextRequest) {
  const token = request.cookies.get("session")?.value

  if (!token && request.nextUrl.pathname.startsWith("/dashboard")) {
    return NextResponse.redirect(new URL("/login", request.url))
  }

  // Verify JWT di edge — sangat cepat
  if (token) {
    try {
      await verifyJWT(token) // Gunakan library yang kompatibel edge
    } catch {
      return NextResponse.redirect(new URL("/login", request.url))
    }
  }
}

Limitasi Edge Runtime

Ini yang paling penting diketahui:

FiturNode.js RuntimeEdge Runtime
Node.js built-insPenuhTerbatas (tidak ada fs, path, dll)
npm packagesSemuaHanya yang edge-compatible
Max memory1GB128MB
Max execution time5 menit30 detik
Database connectionsLangsungHarus pakai HTTP-based

Database yang kompatibel Edge:

  • Supabase (via REST atau JavaScript client)
  • PlanetScale (HTTP protocol)
  • Upstash Redis (HTTP-based)
  • Neon (serverless driver)
  • Turso (SQLite di edge)

Database yang TIDAK kompatibel Edge:

  • PostgreSQL langsung (butuh TCP connection)
  • MySQL langsung
  • Redis TCP

Kapan Pakai Edge vs Node.js Runtime?

Pakai Edge:

  • Auth middleware dan redirects
  • Geo-based personalization
  • A/B testing
  • Simple data transformation
  • Response caching

Pakai Node.js:

  • Database queries kompleks
  • File operations
  • Library yang butuh Node.js built-ins
  • Long-running processes

Edge Functions adalah tool yang powerful di tempat yang tepat — bukan pengganti server runtime biasa.

verceledge functionsnextjsperformance2026

Newsletter Digital Uptime

Tips teknologi & bisnis mingguan

Bergabung dengan 2,500+ subscriber yang mendapatkan insight teknologi, tutorial development, dan tips bisnis digital langsung ke inbox mereka setiap minggu.

Tidak ada spam. Unsubscribe kapan saja.

Artikel Terkait

Kami menggunakan cookies untuk meningkatkan pengalaman Anda di website ini. Dengan melanjutkan, Anda menyetujui penggunaan cookies sesuai Kebijakan Privasi kami.