Vercel Edge Functions ทำงานอย่างไร
Edge Functions รัน code ที่ edge nodes ของ CDN ทั่วโลก ทำให้ latency ต่ำมากเพราะ code รันใกล้กับผู้ใช้มากที่สุด แทนที่จะรันที่ server กลาง
ความแตกต่างหลักระหว่าง Edge Runtime กับ Node.js Runtime คือ Edge Runtime ใช้ Web Standard APIs เช่น Fetch API, Web Crypto ไม่มี Node.js built-in modules และมี cold start time ที่เร็วกว่ามาก
ใน Next.js การตั้งค่า Edge Runtime ทำได้ด้วยการ export runtime = "edge" ในไฟล์ middleware หรือ route handler ซึ่งเหมาะมากสำหรับงานอย่าง authentication middleware, A/B testing, geolocation-based redirects
ข้อจำกัดสำคัญของ Edge Runtime คือไม่สามารถใช้ Node.js APIs ได้ ทำให้ Prisma ซึ่งต้องการ Node.js ไม่สามารถใช้งานได้ใน Edge ต้องใช้ HTTP-based database client แทน
การเลือกระหว่าง Edge และ Node.js ควรพิจารณาจาก latency requirements, library compatibility และ complexity ของ logic เป็นหลัก