Trong quá khứ, backend thường được triển khai ở một cụm máy chủ cố định: Singapore, US-East, Frankfurt,… Nhưng người dùng ở xa thì sao?
Đó là lý do Edge Function ra đời: chạy server-side code gần người dùng nhất có thể, từ đó cải thiện tốc độ đáng kể mà không cần thay đổi kiến trúc quá nhiều.
Edge Function là gì?
Edge Function là các hàm backend chạy tại các điểm “rìa” (edge locations) trên toàn cầu – thay vì ở một server trung tâm.
Bạn có thể hình dung:
- Người dùng ở Hà Nội → gọi server chạy tại edge Singapore
- Người dùng ở Paris → gọi server tại edge London
Tất cả diễn ra tự động nhờ nhà cung cấp như Vercel, Cloudflare, Netlify, Deno Deploy…
Lợi ích nổi bật
- Phản hồi siêu nhanh – vì gần người dùng hơn
- Tự động phân phối toàn cầu
- Tối ưu cho app realtime, web tương tác cao
- Không cần DevOps phức tạp
- Bảo mật cao (sandboxed, isolate function)
Ví dụ thực tế
1. Xác thực người dùng
Giả sử bạn có một API /api/verify-token. Nếu chạy bằng Edge Function:
- Người dùng ở HCM gọi → Xử lý luôn tại edge Singapore
- Không cần gửi token đến server tận bên US hay EU
- Giảm độ trễ đáng kể
2. Redirect theo vị trí
Trong Next.js, tạo middleware tại middleware.ts:
import { NextResponse } from 'next/server';
export function middleware(req: Request) {
const url = new URL(req.url);
const country = req.headers.get('x-vercel-ip-country') || 'US';
if (country === 'VN') {
url.pathname = '/vi' + url.pathname;
return NextResponse.redirect(url);
}
return NextResponse.next();
}
middleware.ts mặc định chạy tại Edge Layer khi deploy trên Vercel.
Các nền tảng Edge Function phổ biến
Vercel Edge Functions | Dễ dùng với Next.js, hỗ trợ middleware |
Cloudflare Workers | Cực nhẹ, chạy tại 285+ location trên thế giới |
Netlify Edge | Hỗ trợ redirect, logic A/B test tại edge |
Deno Deploy | Native ES Module support, rất phù hợp cho JS thuần |
Khi nào nên dùng Edge Function?
- Redirect theo vùng địa lý
- Middleware xử lý auth đơn giản
- API realtime (chat, tracking…)
Lưu ý khi dùng Edge
- Không nên thực hiện các tác vụ nặng như xử lý hình ảnh, truy vấn DB lớn
- Edge Function thường có giới hạn RAM/CPU/thời gian xử lý (Vercel: 1s–10s)
- Dữ liệu nên được cache hoặc gọi từ CDN
Kết luận
Edge Function là xu hướng tương lai cho các ứng dụng web hiện đại:
- Nhanh hơn, gần hơn, mượt hơn
- Không cần quản lý hạ tầng phức tạp
- Thân thiện với frontend developer
Nếu bạn đang dùng Next.js + Vercel, Astro, hoặc bất kỳ JAMstack framework nào, hãy thử chuyển một số API sang chạy ở Edge – bạn sẽ thấy sự khác biệt rõ rệt.