This document discusses Scala 3's support for asynchronous programming using async/await. It begins with reminders about monadic effects and reactivity using effect monads. It then discusses how async/await improves on effect monads by avoiding manual coloring and reducing the number of awaits needed. The document describes how automatic coloring can be achieved using a macro. It also discusses challenges around monad interoperability and optimization of the monadic continuation passing style transformation.