In contrast to this paradigm, Node.js is single-threaded, allowing for thousands of non-blocking input-output calls without the need for additional overhead, as illustrated in the following diagram:
One thing to take note of early on, however: this paradigm isn't a silver bullet for managing traffic and load on a server. There really is no bullet-proof solution (yet) for the problem of large amounts of traffic. However, this structure does help a server to be more performant.
One of the reasons why Node.js pairs so well with JavaScript is that it's already dealing with the idea of events. As we'll see, events are a powerful cornerstone of JavaScript on the frontend, and so it stands to reason that by carrying over this process to the backend, we'll see a bit of a different approach from other architectures.