In Chapter 3, Setting Up a Development Environment, Node.js was described as an asynchronous event-driven JavaScript runtime, which is the definition taken from the official website. What Node.js represents, however, is a profound shift in the way we build and manage web applications. In this section, we will discuss the relationship between WebAssembly and Node.js, and why the two technologies complement each other so well.