jordaneremieff / mangum

AWS Lambda support for ASGI applications
https://mangum.io/
MIT License
1.67k stars 119 forks source link

Support for streaming? #299

Open kmulka-bloomberg opened 1 year ago

kmulka-bloomberg commented 1 year ago

Is there any support for streaming response output? Like websockets, server-sent events, or similar?

rdettai commented 10 months ago

Just to provide a bit more context to @kmulka-bloomberg's question, response streaming is supported by lambda since mid 2023: https://aws.amazon.com/blogs/compute/introducing-aws-lambda-response-streaming/

pkit commented 10 months ago

@rdettai response streaming is supported with NodeJS runtime only, according to your link. :) And upping the size from 6MB to 20MB looks hilarious.

rdettai commented 10 months ago

response streaming is supported with NodeJS runtime only

You're right! At the time they released the feature they only added support for it in the Node runtime. Pretty weird! It is supported in other SDKs now, such as Rust. It should also be doable in Python but strangely I couldn't find any reference about that.

upping the size from 6MB to 20MB looks hilarious

Yes, pushing the limit a few megabytes further is only a minor improvements on that front as you'll probably still need some sort of offloading through S3 for larger responses anyway. Note that the 20MB limit is a soft limit (at least when your not running through API Gateway). It means you can increase it by contacting the support. But it's probably not a very good idea as payloads above 6MB are throttled to 2MBps.

Note that the benefit of having a streamed response is not just for transferring larger payloads, it's also interesting to