Hacker News new | ask | show | jobs
by ashrafulla 1147 days ago
This is a fantastic take (seriously, no sarcasm here). I'll add that serverless platforms have not actually shown the ability to scale _efficiently_. It feels like every software architect has been talking about the 2023 March post^ from Amazon Prime Video on migrating from serverless to serverful. That is a direct response to the inability of serverless to scale because under the hood it is serverful but limited. Besides AWS Lambda and Google Cloud Run others have tried OpenFaaS and Cloudflare Workers. I think only Cloudflare Workers have "scaled" but that's because it's limited scale for each service at the edge with lots of edge devices.

I do not know if this is solvable: a permanent service with light autoscaling handles even inconsistent load so well and reduces operational complexity so much that I don't know if serverless will be anything more than toys. It is no coincidence that AWS Lambda's first language was a frontend language* (Node.js). Those use cases have low to moderate scale (because after that you split frontend and backend).

^Amazon Prime Video post: https://www.primevideotech.com/video-streaming/scaling-up-th.... *First mention of AWS Lambda languages in AWS Compute Blog only mentioned nodejs: https://aws.amazon.com/blogs/compute/container-reuse-in-lamb...

1 comments

I agree with some of the points you've mentioned, but I also think that there definitely are great use-cases for AWS Lambda, and that they are (especially when using a good deployment tool) a great option for many different types of applications.

The biggest problem is that the computing model, or the architecture that is commonly required for this sort of apps (event-driven and asynchronous) is hard to develop, manage and reason about (especially with the async-lambda integrations that by default retry their work if they fail). This means that you need to think about them and architect them in a way that makes them idempotent.

If you configure everything properly, event-driven, AWS Lambda-based apps can be extremely useful. I just don't believe that the complexity required to add them to your application is worth the complexity that needs to be added to your app to make it all work.

What I wanted to say is that Lambda functions have their use-cases, and that if used reasonably, they can heavily simplify the application that they are used within.

Our product (https://stacktape.com, disclosure: Im a founder), makes it easy to deploy both container-based (ECS Fargate and ECS EC2) apps, and lambda functions, with almost no changes in the configuration). This allows our users to always choose the right technology/computing model for the use-case they are working on.