In plain words

Most server code runs in one place. You pick a region like us-east-1, and a user in Singapore waits for a round trip across the planet on every request. An edge runtime runs your code at the CDN point of presence nearest each user instead, so the compute happens a few milliseconds away rather than an ocean away.

The catch is that it is not just Node.js moved closer. An edge runtime is a deliberately small environment. You get web-standard APIs like fetch, Request, and Response, but not the full Node.js surface: no filesystem on most platforms, no native modules, and tight limits on CPU time and memory.

How it works

Edge platforms skip the slow part of traditional serverless: booting a container or virtual machine for each request. They reach for one of two lightweight isolation models, both designed to pack many programs cheaply into a single process.

  • V8 isolates power Cloudflare Workers and Vercel's Edge runtime. An isolate is a lightweight context that shares one runtime process, so it starts in roughly 5 milliseconds, about 100x faster than a Node process, with around 3 MB of overhead against the ~35 MB of a Node Lambda. The model, in Cloudflare's words, "eliminates the cold starts of the virtual machine model."
  • Wasm sandboxes power Fastly Compute, which compiles your code to a WebAssembly binary and runs it in a sandbox at the edge. Different mechanism, same goal: thousands of isolated programs in one process without a VM per request.

Either way the API surface is constrained. You write against web-standard APIs - fetch, Request, Response, Web Crypto, Streams, URL - rather than the full Node.js API. Dynamic code execution like eval is disabled, the filesystem is off-limits on Vercel's Edge runtime, and Node.js compatibility on Workers is partial and opt-in. A Worker is just a module that exports a fetch handler:

export default {
  async fetch(request, env, ctx) {
    return new Response("Hello World!");
  },
};

Limits are explicit. A Cloudflare Worker isolate can use up to 128 MB of memory, with CPU time capped at 10 ms on the free plan and up to 5 minutes on paid plans (time spent waiting on the network does not count). Vercel's Edge functions must start sending a response within 25 seconds. These ceilings are the price of starting instantly.

Why it matters

Running close to the user cuts latency, and the isolate or Wasm model means almost no cold start, even for code that has not run in a while. For request routing, auth, redirects, personalization, and API gateways, that combination is hard to beat, which is why the Cloudflare Workers versus Fastly Compute choice turns on the isolate-versus-Wasm tradeoff more than on a feature checklist.

The cost is that constrained environment. Anything that needs the full Node.js API, a long-lived process, or heavy sustained CPU is a poor fit, which is part of the broader Bun versus Node.js runtime conversation. The boundary is not fixed, either. Vercel now recommends moving workloads from its Edge runtime back to Node.js, both running on its newer compute model, while other platforms keep widening what runs at the edge, down to per-tenant durable execution.

Origin

The category emerged alongside CDN edge compute around 2017. AWS Lambda@Edge reached general availability that year, running Node.js functions across CloudFront locations, and Cloudflare introduced Workers in September 2017, running JavaScript on V8 against a Service Worker-like API. No single source coined the exact phrase; it settled into use as more platforms shipped the model.

The shared API surface is now standardized. The group once known as WinterCG moved to Ecma International as Technical Committee 55, renamed WinterTC, in early 2025. Its Minimum Common Web API, a curated subset of W3C and WHATWG web-platform APIs for server runtimes, was adopted by the Ecma General Assembly in December 2025. Fastly's runtime, among others, targets it, which is what lets the same code increasingly run across providers.

Common confusions

Confused withHow it differs from an edge runtime
Node.js runtimeNode.js exposes the full API, including the filesystem and native modules, and usually runs in one region. An edge runtime exposes a constrained, web-standard subset and runs at edge locations.
Serverless / LambdaBoth are serverless, but classic functions run in a chosen region inside containers or microVMs. Edge functions run at distributed locations on isolates or Wasm, with near-zero cold starts.
Isolates vs containersIsolates are lightweight V8 contexts that share one process and start in milliseconds. Containers and VMs boot a full OS or runtime per instance, which is where cold starts come from.
CDN / origin cachingA CDN cache serves stored bytes from edge locations. An edge runtime executes your code at those same locations, so it can authenticate, route, and personalize, not just return cached responses.