Is your feature request related to a problem? Please describe.
Currently when one deploys a task, it immediately starts running exactly one copy of it, needing to listen on the network directly. This probably isn't a long-term solution, since direct access the network is a possible attack vector, and different workloads might try to listen on the same ports. In the long run, my prediction is that there will end up being some HTTP/MQTT proxy that routes incoming requests to where the task is located.
If this ends up happening, then a single long-running task will be a waste of memory when requests aren't coming in often, and a performance bottleneck when they are (since the component would need to be multithreaded and do a bunch of internal synchronisation to keep from corrupting its own memory).
Describe the feature you are requesting, as well as the possible use case(s) for it.
It should be possible to deploy a task to a Proplet, so that it pulls the component and precompiles it, but doesn't immediately start executing. Only when a request comes in should it actually instantiate the tasks's component, and concurrent requests can result in the component being instantiated multiple times and run in parallel.
Then, while waiting for requests, the task doesn't consume as much memory, and when many requests are coming in, they can more easily run in parallel as with traditional FaaS, and as well as being parallelised over multiple Proplets where a single worker doesn't have the capacity to manage all the requests on its own.
Indicate the importance of this feature to you.
Nice-to-have
Anything else?
No response
Is your feature request related to a problem? Please describe.
Currently when one deploys a task, it immediately starts running exactly one copy of it, needing to listen on the network directly. This probably isn't a long-term solution, since direct access the network is a possible attack vector, and different workloads might try to listen on the same ports. In the long run, my prediction is that there will end up being some HTTP/MQTT proxy that routes incoming requests to where the task is located.
If this ends up happening, then a single long-running task will be a waste of memory when requests aren't coming in often, and a performance bottleneck when they are (since the component would need to be multithreaded and do a bunch of internal synchronisation to keep from corrupting its own memory).
Describe the feature you are requesting, as well as the possible use case(s) for it.
It should be possible to deploy a task to a Proplet, so that it pulls the component and precompiles it, but doesn't immediately start executing. Only when a request comes in should it actually instantiate the tasks's component, and concurrent requests can result in the component being instantiated multiple times and run in parallel.
Then, while waiting for requests, the task doesn't consume as much memory, and when many requests are coming in, they can more easily run in parallel as with traditional FaaS, and as well as being parallelised over multiple Proplets where a single worker doesn't have the capacity to manage all the requests on its own.
Indicate the importance of this feature to you.
Nice-to-have
Anything else?
No response