Lambda cold starts are fucking painful - sometimes you wait 500ms+ just for your function to wake up, and that's if you're lucky. I've debugged enough production incidents at 3am to know that cold start latency kills user experience faster than anything else.
Workers solved this by ditching containers entirely. Instead of spinning up a new container for every request like Lambda does, Workers use V8 isolates - the same isolation tech that lets Chrome run untrusted JavaScript safely. Your code runs in milliseconds because it's not waiting for an entire container to boot up.
Why This Actually Matters in Production
I've run Workers in production for two years now, and the cold start difference is genuinely night and day. Lambda can take anywhere from 100ms to 1000ms to start (Node.js is especially brutal), while Workers start basically instantly. The performance benchmark numbers are real - I consistently see sub-10ms cold starts.
This isn't just academic. When you're serving API requests or handling webhook events, that 500ms Lambda cold start adds up fast. Users notice it, monitoring alerts fire, and you spend your weekend debugging why your "fast" API is slow as hell.
Workers deploy everywhere automatically - all 330+ locations without you doing anything. Lambda makes you pick regions and manage deployments. It's the difference between "just works globally" and "spend three hours configuring regions."
The Pricing Actually Makes Sense
Lambda bills you for wall-clock time - even when your function is sitting there waiting for a database query to return. Workers bill you for CPU time only. If your function spends 90% of its time waiting for I/O (database calls, API requests), you only pay for the 10% when it's actually doing work.
I've seen AWS bills drop by 40% just from switching I/O-heavy workloads from Lambda to Workers. The free tier is generous too: 100,000 requests per day and 10ms CPU time per request.
What You Can Actually Build
Workers started as simple edge functions but now handle full-stack apps. You can run React, Next.js, FastAPI - whatever. The JavaScript ecosystem works, Python is in beta, and anything that compiles to WebAssembly runs fine.
The database story is solid: D1 SQLite for edge-native storage, Hyperdrive for connection pooling to external databases, and KV storage for caching. Durable Objects give you stateful logic when you need it.
The Sharp Edges Nobody Mentions
Workers aren't perfect. You get 128MB of memory and 30 seconds max execution time (5 minutes if you pay more). No filesystem access, limited Node.js APIs. If you're doing heavy CPU work or need to process large files, stick with Lambda or containers.
The local dev environment doesn't perfectly match production. I've hit edge cases where code works locally but fails on the edge. The debugging story is getting better with Workers Observability, but it's still not as mature as CloudWatch.
Workers is genuinely fast and the pricing makes sense, but it's not a drop-in replacement for everything. Know the limitations before you migrate your entire backend.