Two small questions:
1. in your README you give this example for durable execution:
const shipment = await ctx.awaitEvent(`shipment.packed:${params.orderId}`);
I was just wondering, how does it work? I was more expecting a generator with a `yield` statement to run "long-running tasks" in the background... otherwise is the node runtime keeping the thread running with the await? doesn't this "pile up"?
2. would your framework be suited to long-running jobs with multiple steps? I have sometimes big jobs running in the background on all of my IoT devices, eg:
for each d in devices: doSomeWork(d)
and I'd like to run the big outerloop each hour (say), but only if the previous one is complete (eg max num of workers per task = 1), and that the inner-loop be some "steps" that can be cached, but can be retried if they fail
would your framework be suited for that? or is that just a simpler use-case for pgmq and I don't need the Absurd framework?