In deno, you can restrict what the code inside worker can do by passing a map of allowed permissions. I have built a simple privilege system on top of this to allow users different access level.
This is cheaper and faster than spinning up container.
https://github.com/domenic/worm-scraper/blob/master/lib/conv...
I've been using Tarn a bunch at work recently. We're doing some batch jobs, and I'm queuing work at each stage in Tarn.js pools. I created my own enqueue function that waits until the pool is less than a high-water mark in size before enqueueing. Then the pool has however many workers running.
Neither of these are off-thread pools. But they help a lot of for managing multiple async operations.
We have an api used for generating reports from mongo dB to csv, this let's the report process in the background leaving the report api to still handle requests.
It has support for worker threads + cron + human strings
We also have a worker thread blocked on a redis channel that acts as a queue.