Flattening nested futures

Thanks for exploring this it was very illustrative.

Eagerly applying .await seems like a problem, though?

I've always tried to postpone the application of await until as late as possible — otherwise you're just blocking the application unnecessarily.

Here I'm assuming that you care about the time it takes to run the current code to completion — if you instead just want to keep the cores busy and if you're processing lots of requests in parallel, then blocking on many tiny async should be fine.

Much of the discussion so far has revolved around how .await makes it easy to block until results are ready so we can do error handling and so on. There has been little or no attention paid to staying in the "async world".