Empirical evaluation of straight-line asynchrony design trade-offs

Build an empirical body of data that supports reasoning about the trade-offs among straight-line asynchrony design choices, including the relative overhead and concurrency of semi-eager versus eager async function application, the bug-prevention effects of simultaneous versus bottom-up cancellation, the degree to which each semantics matches developer expectations, and the relationship between design decisions and programming errors.

Background

The paper develops a nine-dimensional taxonomy of straight-line asynchrony, covering the start and end of asynchronous computations and the behavior of cancellation. Although the taxonomy identifies important trade-offs, the paper does not provide empirical evidence for choosing among competing design points.

The authors explicitly identify several unresolved empirical questions: the runtime overhead and concurrency benefits of semi-eager application relative to eager application; whether simultaneous cancellation prevents realistic bugs that would arise under a bottom-up cancellation strategy; which semantics best correspond to developers’ expectations; and which design decisions lead to more errors. Resolving these questions would help language designers evaluate future async/await designs using evidence rather than informal rationale alone.

References

An open challenge for the future is to build a body of empirical data that can support designers in reasoning about the trade-offs of different approaches. For example, how much overhead does \seager async function application incur versus \eager, and how much more concurrency does it gain? To what extent does \simultaneous cancellation prevent realistic bugs that would occur with a \bup cancellation strategy? Which of these semantics best matches developer expectations for the behavior of asynchronous code? Which decisions lead to more errors?

A Design Space Exploration of Async/Await  (2608.20677 - Gray et al., 21 Aug 2026) in Section 6, Discussion, subsection “Where do we go from here?”