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.

job ad

Saby Company
Delebio, Italy

Intermediate

test

Milly
Vienna, Austria

Intermediate

Featured Partners

Related Articles

View all articles
CH
Chris Heilmann
All the videos of Halfstack London 2024!
Last month was Halfstack London, a conference about the web, JavaScript and half a dozen other things. We were there to deliver a talk, but also to record all the sessions and we're happy to share them with you. It took a bit as we had to wait for th...
All the videos of Halfstack London 2024!
CH
Chris Heilmann
Dev Digest 111 - npm i -g issues
In last Friday's Dev Digest we looked at some global tech issues, took a deep dive into code assistants, we have a great video about NPM security and want you to tell us your favourite code questions to use in CODE100. News and ArticlesLet's start th...
Dev Digest 111 - npm i -g issues

From learning to earning

Jobs that call for the skills explored in this talk.

NodeJS Developer

NodeJS Developer

Multiplica Talent

Intermediate
GIT
MySQL
NoSQL
DevOps
NestJS
+7