Short answer is that 1 isn’t something we’ve built support for out of the box. We talked about it, but ultimately went with
https://dagster.io/blog/fast-deploys-with-pex-and-docker instead (some of the tradeoffs are discussed in that blog post)
2 should work - we have plenty of users who use EC2 instead of Fargate. We use Fargate by default because of the lower operational burden.
3 would require you to write your own executor.
And 4 isn’t currently on the roadmap. A potential challenge given each lambda execution’s limited lifespan would be keeping the code servers around - unless it’s something like “lambda and ec2” or “lambda and ecs”, we potentially trade off the run startup time for the code server startup time.
One thing that is on the roadmap (but the specifics of what it will mean are still very hazy) is better support for lower latency/steaming patterns. We’ve found that the more we squint at the low latency challenge, the more it starts to look like streaming/micro-batching.
Plus I was about to post what Matt posted but he beat me to it.