Edge runtimes finally deliver what they promised: single-digit-millisecond cold starts, deployment to 300 cities, pricing that rounds to free. We use them in production. We also un-shipped them from two projects last year. Both facts belong in the same essay.

The sharp class of bug

The edge failure mode is distance from your data. A function running 20 milliseconds from the user but 180 milliseconds from Postgres is slower than a boring server in the same rack as the database — and the waterfall of three sequential queries turns one region hop into three.

Edge wins when the work is self-contained: rewrites, auth checks against a token, personalisation from a replicated KV store, streaming a response you already have. It loses the moment the request needs several round trips to a single-region database.

The decision tree

Does the request touch the primary database more than once? Stay regional. Is the data it needs replicable to the edge (KV, config, sessions)? Edge is excellent. Is it CPU-heavy or does it need Node APIs? Stay regional. Is it glue — redirects, headers, A/B splits, geo logic? Edge, always.

The runtimes are mature. The architecture discipline is what is still catching teams out.