Serverless & Cloud Computing

Mastering Vercel Edge Functions: Ultra-Low Latency Serverless Runtime

প্রচলিত ক্লাউড কম্পিউটিং এবং সাধারণ সার্ভারলেস ল্যাম্বডা ফাংশনের (AWS Lambda / Node.js runtime) সবচেয়ে বড় দুর্বলতা হলো Cold Start Overload। যখন কোনো কুয়েরি অনেকক্ষণ পর আসে, তখন পুরো কন্টেইনার বুট হতে কয়েক সেকেন্ড সময় নষ্ট করে। এই গ্লোবাল ল্যাটেন্সি বা অলসতা ভাঙার আধুনিক সমাধান হলো **Vercel Edge Functions**।

ভার্সেল এজ ফাংশন ব্যাকএন্ডে কোনো ভারী নোড ইঞ্জিন ব্যবহার করে না, বরং গুগল ক্রোমিয়ামের লাইটওয়েট **V8 JavaScript Runtime (Web Workers API)** এর ওপর ভিত্তি করে চলে। এটি ইউজারের সবচেয়ে কাছের সিডিএন (CDN) এজ ডিরেক্টরিতে মিলি-সেকেন্ডের মধ্যে এক্সিকিউট হয়ে আউটপুট জেনারেট করে। সম্পূর্ণ ফ্রিতে কীভাবে এটি সেটআপ ও ব্যবহার করবেন, আজ আমরা তা দেখবো।

১. আর্কিটেকচার কনফিগারেশন

আপনার প্রোজেক্ট ফোল্ডারে একটি স্ট্যান্ডার্ড ডিরেক্টরি তৈরি করুন। রুট লেভেলে **`api/edge-service.js`** ফাইল তৈরি করে নিচের মতো এক্সপোর্ট ফাইল রাইট করুন। মেকানিজম ট্র্যাকিংয়ের জন্য আমরা এজ রানটাইম এক্সপ্লিসিটলি ডিফাইন করে দেবো:

// ভার্সেলকে এজ রানটাইম ব্যবহার করার নির্দেশ দেওয়া
export const config = {
  runtime: 'edge',
};

export default async function handler(request) {
  // ইউজারের আইপি এবং লোকেশন ডাটা এজ নেটওয়ার্ক থেকে সরাসরি ফেচ করা
  const userGeo = request.geo || {};
  const userCity = userGeo.city || "Unknown City";
  const userCountry = userGeo.country || "Global Edge Node";

  const responsePayload = {
    status: "Success",
    runtime: "V8 Edge Web Workers",
    cold_start: "0ms (Zero Latency)",
    client_location: `${userCity}, ${userCountry}`,
    timestamp: new Date().toISOString()
  };

  return new Response(JSON.stringify(responsePayload), {
    status: 200,
    headers: {
      'content-type': 'application/json',
      'x-powered-by': 'Ahyan Edge Engine Framework'
    },
  });
}

ধাপ ২: গিটহাব ইন্টিগ্রেশন ও লাইভ গ্লোবাল ডেপ্লয়মেন্ট

আপনার কোডটি পিসিতে বা টারমাক্স থেকে গিটহাবের মাধ্যমে পুশ করুন। এবার মূল প্রসেসটি অত্যন্ত সহজ:

  1. Vercel Dashboard-এ গিয়ে লগইন করুন।
  2. Add New ➔ Project এ ক্লিক করে আপনার গিটহাবের নির্দিষ্ট রিপোজিটরির সাথে সিঙ্ক বা ইমপোর্ট করুন।
  3. কোনো জটিল সেটিংস ছাড়াই Deploy বাটনে হিট করুন।

ডেপ্লয়মেন্ট শেষ হওয়ার সাথে সাথেই ভার্সেল আপনাকে একটি ফ্রি সাবডোমেন ইউআরএল দেবে (যেমন: https://my-app.vercel.app/api/edge-service)। আপনি যখনই এই লিঙ্কে ভিজিট করবেন, কোনো কোল্ড স্টার্ট মেমোরি কস্ট ছাড়াই চোখের পলকে আপনার লোকাল এজ ডিরেক্টরির আইপি ট্র্যাকিং ডাটা জেসন অবজেক্ট হিসেবে আউটপুট চলে আসবে।

সীমাবদ্ধতা সতর্কতা: যেহেতু এটি নোড রানটাইম নয়, তাই আপনি এখানে সরাসরি নোডের নেটিভ বাইনারি মডিউল (যেমন fs বা কিছু প্রাচীন ক্রিপ্টো লাইব্রেরি) ব্যবহার করতে পারবেন না। তবে স্ট্যান্ডার্ড ওয়েব কুয়েরি, কাস্টম সেশন হ্যান্ডলিং এবং রিমোট ডাটাবেজ (যেমন Supabase বা MongoDB Atlas) এপিআই কানেক্ট করার জন্য এটি বর্তমান বিশ্বের সবচেয়ে ফাস্ট এবং অর্থনৈতিক অবকাঠামো।