Runtimes, Wakers, and the Reactor-Executor Pattern 174 The following diagram shows a simplified overview of our current design: Figure 8. 2-Executor and Future chain: current design If we take a closer look at the future chain, we can see that when a future is polled, it polls all its child futures until it reaches a leaf future that represents something we're actually waiting on. If that future returns Not Ready, it will propagate that up the chain immediately. However, if it returns Ready, the state machine will advance all the way until the next time a future returns Not Ready. The top-level future will not resolve until all child futures have returned Ready. 