I will keep looking. Keep in mind, BEAM uses a preemptive actor rather than async, so it avoids the “storms” that can happen when an async reactor runs out of resources. EDIT: but I guess Tokio is capable of preemption through work-stealing too?
https://betterprogramming.pub/the-dangers-of-async-in-python...
And this is how some people are solving it:
https://async.rs/blog/stop-worrying-about-blocking-the-new-a...
This is how it works in BEAM:
https://github.com/happi/theBeamBook/blob/master/chapters/sc...
The commonality is to limit execution time and yield (preempt) so something else can run too.
I will keep looking. Keep in mind, BEAM uses a preemptive actor rather than async, so it avoids the “storms” that can happen when an async reactor runs out of resources. EDIT: but I guess Tokio is capable of preemption through work-stealing too?