JavaScript programming heavily utilizes asynchronous callbacks to enable throughput and responsiveness. While this programming model has been very useful, up until recently, it has always been defined informally and based on developer intuition. As a result, simply discussing async code execution is challenging, and building libraries, tools & systems that depend on “async context” are challenged with subtle inconsistencies in behaviors. To address this, we have been working with the Node.js Diagnostics Working Group to formalize the concepts and semantics of the asynchronous programming model in Node. In this talk you will learn about the Continuation Model for modeling the semantics of asynchronous programming and how these semantics provide a clear way to reason about the asynchronous code execution in Node.