Node.js Internals
See what really happens inside the runtime when your code runs.
Sessions
Go in order. Each session is one idea you can drag, step and break.
Interactive
LiveThe event loop, phase by phase
Queue timers, promises and I/O, then step through each loop phase.
Open session →
Interactive
LiveStreams and backpressure
Push data faster than it drains and watch the buffer fill.
Open session →
Interactive
LiveThe libuv thread pool
Fire file and crypto work and see which calls block the pool.
Open session →
Interactive
LiveDon't block the event loop
One 200 ms calculation stalls every request, until it moves to a worker thread.
Open session →
In production
Tools you can use
12 technologies across 4 live sessions. Same names in any language — pick a session to see how the idea maps to the real world.
Services, platforms, protocols and standards — not one stack.
One thread interleaves work with I/O callbacks; similar patterns appear outside Node too.
- libuvSoftware
Cross-platform async I/O library (used by Node and others).
GitHub ↗ - Node.jsPlatform
Reference runtime for the phases shown in this visual.
Official site ↗ - TokioSoftware
Rust async runtime: tasks, timers, and I/O drivers.
GitHub ↗ - asyncioSoftware
Python’s event loop for coroutines and non-blocking I/O.
Official site ↗
Backpressure appears anywhere a producer can outrun a consumer — not only in Node streams.
- Apache KafkaService
Log-based streaming; consumers pull at their own pace.
Official site ↗ - RabbitMQService
Queues with prefetch and consumer acks to slow producers.
Official site ↗ - gRPC streamingProtocol
Flow-controlled bidirectional streams between services.
Documentation ↗ - Reactive StreamsStandard
Publisher / subscriber contract for demand-driven flow.
Official site ↗
Any runtime with one event loop needs somewhere to put blocking work: a pool, a worker, or the OS.
Every single-threaded runtime has this rule: keep long CPU work off the thread that serves requests.
- worker_threadsPlatform
Run JavaScript on another thread and message results back.
Official site ↗ - PiscinaSoftware
A worker thread pool for Node.js.
GitHub ↗ - perf_hooks.monitorEventLoopDelayPlatform
Measure how long the event loop is blocked.
Official site ↗ - Clinic.jsSoftware
Find what is blocking the event loop in a running app.
GitHub ↗
Roadmap
Coming soonA step-by-step path through the track, with sessions and practice at each stage.
- Stage 1
Runtime & V8 basics
- Stage 2
Event loop & async
- Stage 3
Streams & buffers
- Stage 4
Workers & clustering
- Stage 5
Profiling & performance
Projects
Coming soonBuild something real to lock in the skill.
- Write a tiny HTTP server from sockets
- Build a rate-limited job queue
- Stream a large CSV into a database