"Node.js is single-threaded" — you've heard it a hundred times. So how does it handle thousands of requests at once without freezing?

The answer is the event loop. Once it clicks, a lot of Node "magic" suddenly makes sense. Let's break it down.

The one-line mental model

Node runs your JavaScript on one main thread, but hands off slow work (file reads, network calls, timers) to the system, and picks up the results later via the event loop. So one thread juggles thousands of connections — it just never sits around waiting.

Blocking vs non-blocking