Matteo Collina

Node.js: More Threads Than You Think

Is Node.js really single-threaded? The answer has changed. Learn how to leverage multi-threading to build faster, more scalable applications.

Node.js: More Threads Than You Think
#1about 3 minutes

Debunking the myth of single-threaded Node.js

Node.js has supported multi-threading via the worker_threads module since 2018, contrary to the common misconception that it is single-threaded.

#2about 4 minutes

How worker threads communicate with each other

Threads communicate using MessagePort and MessageChannel for direct messaging or BroadcastChannel to send messages to all threads simultaneously.

#3about 2 minutes

Understanding object serialization between threads

JavaScript objects are not shared between threads but are copied via the structured clone algorithm, with certain objects like SharedArrayBuffer being transferable for efficiency.

#4about 2 minutes

Using Piscina for effective thread pool management

The Piscina library simplifies multi-threading by providing a thread pool to manage worker creation, task scheduling, and result handling automatically.

#5about 2 minutes

Real-world use cases for worker threads

Worker threads are used in libraries like Pino to prevent log loss on exit and within Node.js itself to power loader hooks for ESM and TypeScript support.

#6about 2 minutes

Scaling applications with the Vlt application server

The Vlt application server runs multiple Node.js services as separate threads within a single process, enabling efficient communication via shared memory.

#7about 2 minutes

Demo: Offloading CPU-intensive work to a thread pool

A live demo shows how offloading a synchronous, blocking operation from the main event loop to a Piscina thread pool dramatically improves server throughput.

#8about 2 minutes

Demo: Advanced queue management for load shedding

By managing the task queue and skipping work when the system is overloaded, you can significantly improve tail latency and overall throughput.

#9about 4 minutes

Demo: Scaling apps with Vlt and no code changes

A demonstration shows how the Vlt server can scale both a standard API and a Next.js SSR application across multiple threads using only configuration changes.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.

Node Js Developer

Plexus
Municipality of Santiago de Compostela, Spain

Node.js

Node.js developer


Sint-Martens-Latem, Belgium

Remote
Intermediate
GIT
REST
NoSQL
Scrum
+6

node.js Developer

Haystack People
Eindhoven, Netherlands

API
React
Node.js
JavaScript
TypeScript
+1