Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Does this run a separate Beam instance for every Function? If so, isnt that an enormous waste of Erlang? If not, how isolated are requests? Can I send messages between them? Should I?


Lambda will create a function instance to handle concurrent requests, i.e. if 100 requests happen at the same time there will be 100 function instances. It will then however keep them "alive" for a few minutes allowing it to reuse already running instances. Additionally, a function instance won't handle multiple requests at a time.

Given this, using beam is a bit of a waste in terms of individual instance scalability. That being said however, you might be able to use shared actor pools (e.g. caches, etc.) across all your functions. I want to emphasise the might as rapidly adding and removing nodes from the beam cluster might not work well or at all.

At the end of the day, the lambda model kind of supplants the actor model as your unit of messaging and concurrency, and so trying to mix the two isn't the best idea. If you want to use the beam on AWS I'd recommend sticking to ECS/Fargate/EKS. That being said, Elixir might be a nice match due to developer ergonomics, just don't expect to be able to drag and drop actor reliant features.


Could it not keep a naked beam and load your code once it knows that the request is for you? This it could keep a few spares around that are almost hot.


Maybe it shares a beam instance per AWS account. Definitely curious about the isolation level of lambda in general since the same comment also applies to the JVM.


This means AWS would keep a beam instance running for you the entire time? I doubt that


I assume it'll cold boot one up for you if you didn't already have on running on first request, keep it around for a while, and when it becomes idle for a while, shut it down. There's a lot of blog content out there to try to ping lambda enough so the instance stays around to avoid the cold boot issue.


If only there were a feature of lambda where it stayed up all the time...


Never having a cold boot isn't quite the same as being able to set a minimum concurrency level, though both would be very valuable.

At re:invent this year, someone on the Lambda team indicated that they were working on something in this space, but couldn't say exactly what, or give any real timeline.


EC2 ?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: