DEV Community

Cover image for The Serverless Dream Is Dead

The Serverless Dream Is Dead

Shayan on May 20, 2025

For years, serverless was sold as the future. No servers to manage. Just write a function, deploy it, and let the platform scale it for you. AWS L...
Collapse
 
meandre profile image
Andrew

Most real-world apps:

Talk to a database
Rely on fast and consistent latency
Need sessions, auth, background processing
Require long-running or multi-step logic

Literally every point listed here is solved for serverless in exactly the same way as for traditional server apps (except #2).

  1. Databases (wow, how unexpected!)
  2. What platform can't keep your lambdas pre-warmed?
  3. Cookies! Session tokens! Authentication gateways! Serverless doesn't demand anything new here. First thing you learn about HTTP in the context of sessions is that it's stateless.
  4. That's what we use delayed jobs for? I mean, aren't lambdas just perfect for that?

Vendor lock-in is a totally valid point though - but it's the only one I can relate to.

Collapse
 
shayy profile image
Shayan

My point isn't "you can't." It's that forcing full apps into a FaaS model often means more complexity, worse DX, and deeper lock-in, all while you're essentially rebuilding (often poorly) what servers already did well.

Sure you can stich together state with external caches, bring in hyperdrive to handle database connection pooling, build a complex job system to bypass the max function execution time, and setup cron jobs to warm up a few instances which goes against the whole "scale to zero" mantra. All to end up with a unpredicatable latency, relying on proprietary glue to make it work, worse DX, almost impossible to debug.

Even the platforms are showing this: Deno cut regions because global FaaS wasn't the magic bullet, Vercel built Fluid to get closer to server-like behavior, Cloudflare added stateful Durable Objects. They're all rebuilding the server, just with more proprietary layers.

You're essentially ignoring the nuance in my post by just saying, "Well, FaaS can do that too."

Collapse
 
slootjes profile image
Robert Slootjes

I'm also not sure what point the poster is trying to make. FaaS can do all of these things just like any other solution. I guess it's a lack of experience with the technology.

Collapse
 
shayy profile image
Shayan

tl;dr: "Just because you can doesn't mean you should."

Thread Thread
 
slootjes profile image
Robert Slootjes

You prove my point exactly with this comment, thanks.

Thread Thread
 
shayy profile image
Shayan

Are you actually completely missing, or deliberately ignoring the entire point of the article? Can't tell which it is, lol.

Thread Thread
 
slootjes profile image
Robert Slootjes • Edited

To me the article doesn't make sense, it's lack of experience with the technology.

For instance, you talk about stateless being something bad or exotic while it's completely normal. State is kept in a database, not in the memory of your application. What would happen if your server goes down?

It's fine if you don't like FaaS or Serverless in general but the reasons you mention are not facts, it's just your opinion based on your own experience.

More info:

  • I use DynamoDB, PostgreSQL, Redis in Lambda, just works.
  • multi step, I use Step Functions for this, amazing service with retries, parallel tasks, async tasks etc. Good luck doing this yourself.
  • background stuff like crons, possible with Cloudwatch Events. No problem at all.
  • Cold starts I was able to reduce to a single second but usually there is a warm lambda available because of activity in the system.
  • most frameworks for web assume stateless, perfect fit for http requests which are stateless too.

1 more addition; you tried one of the available solutions and assume they all work the same. Lambda for instance can run globally at edge (Lambda@Edge) for specific tasks but my serverless apps just run in a single region. Could it be that you are shooting down FaaS/Serverless compute for the wrong reasons perhaps?

Collapse
 
dotallio profile image
Dotallio

Totally agree that trying to build complex, stateful apps on serverless always turns into a headache. Curious if you’ve found any tools that actually make region-pinning and state easier - or does it just feel like recreating servers anyway?

Collapse
 
shayy profile image
Shayan

Yeah, that's exactly the problem. Once you start needing region-pinning and stateful logic, you're already halfway back to just running a server.

Some tools try to help with this (like Durable Objects on Cloudflare or Deno's upcoming compute-bound state), but in practice they come with their own trade-offs and lock you into that platform’s way of doing things. You're not really avoiding complexity, just shifting it somewhere else.

For most apps, I’ve found it’s easier to just pick one region close to your users and colocate everything there. You avoid most of the pain without giving up too much performance.

Collapse
 
nevodavid profile image
Nevo David

Yeah, this hits home for me - always felt like building real stuff on serverless turned into a mess, but it's still clutch for all my quick jobs.

Collapse
 
shayy profile image
Shayan

Same here. I still reach for serverless when I need to run something fast, stateless, and event-driven, it’s great for that. But the moment you try to build anything with real complexity or state, it stops being simple. It’s best used as a sharp, focused tool, not the whole toolbox.

Collapse
 
code42cate profile image
Jonas Scholz

🪦

Collapse
 
gregorygaines profile image
Gregory Gaines

Interesting, I'd say the biggest problem with serverless is a lot of people don't know how to use it properly. Don't get me wrong, serverless is a tool just like any other tool, but it hurts to read all these articles of people using it wrong.

Collapse
 
stas-sultanov profile image
Stas Sultanov

Serverless services is yet another great example of a purpose built tool being used for right everything without understanding the fit.

Collapse
 
matthewbdaly profile image
Matthew Daly

I recently built a registration form on Azure functions and this is pretty much word for word my own thoughts on it. It worked reasonably well but it was clear we were pushing against the limits of what it was reasonable to do with it.

Collapse
 
nathan_tarbert profile image
Nathan Tarbert

been cool seeing steady progress in this space - always make me think if picking the “right tool for the job” is really about the tech itself, or just how much headache i’m willing to deal with long run

Collapse
 
stevsharp profile image
Spyros Ponaris

What are the ideal use cases for serverless today?
Thanks for sharing !!!

Collapse
 
devhammed profile image
Hammed Oyedele • Edited

Serverless should work for the following:

  • PubSub (e.g webhook handlers, event sourcing)
  • Media Processing (e.g thumbnail service, video optimization, image compressor)
  • Scheduled Tasks (as mentioned in the article like sending invoices monthly or clearing users deleted items)

And other "quick tasks".

Collapse
 
stevsharp profile image
Spyros Ponaris

Great points, Hammed! 👏
You could also add a few more ideal use cases for serverless:

  • API backends for simple CRUD apps –
  • IoT event processing – Serverless works well for ingesting bursts of small data from connected devices, especially when combined with services like AWS IoT or Azure IoT Hub.
  • Real-time file processing – Tasks like virus scanning, format validation, or metadata extraction right after upload are a great fit.

All these scenarios benefit from serverless scalability and cost-efficiency. 🚀

Collapse
 
astrod333 profile image
Astro

let's connect
github.com/astrod333