Why Node.js Needs an Application Server

This ad is not shown to multipass and full ticket holders
React Summit
React Summit 2026
June 11 - 15, 2026
Amsterdam & Online
The biggest React conference worldwide
Upcoming event
React Summit 2026
React Summit 2026
June 11 - 15, 2026. Amsterdam & Online
Learn more
Bookmark
Rate this content
Sentry
Promoted
Code breaks, fix it faster

Crashes, slowdowns, regressions in prod. Seer by Sentry unifies traces, replays, errors, profiles to find root causes fast.

You've been deploying Node.js wrong. For years, the community has treated Node.js as a simple runtime—start a process, put it behind a reverse proxy, scale horizontally. But this approach ignores fundamental architectural problems that become painfully obvious in production: the single-threaded event loop bottleneck, inefficient resource utilization, fragmented tooling, and the operational complexity of managing multiple services.

In this talk, I'll make the case for why Node.js needs a proper application server—and why we built Watt to solve these problems. We'll go deep into the architecture: how SO_REUSEPORT enables kernel-level load distribution without IPC overhead, how multiple workers within a single deployment unit can achieve near-linear scaling, and how a unified runtime can orchestrate frontend frameworks like Next.js alongside backend microservices.

You'll see real benchmark data: 93% faster median latency compared to PM2 clusters, 99.8% reliability under sustained load, and dramatic reductions in infrastructure costs. More importantly, you'll understand why these improvements happen at the architectural level.

Whether you're running Next.js, Fastify, or any CPU-bound Node.js workload, you'll leave with a fundamentally different perspective on how Node.js applications should be built, deployed, and scaled.

No magic. No hype. Just better architecture.

This talk has been presented at Node Congress 2026, check out the latest edition of this JavaScript Conference.

FAQ

Matteo Collina is the co-founder and CTO at Platformatic, chair of the Node.js Technical Steering Committee, and a member of the OpenJS Foundation Board and the GraphQL Foundation.

Node.js needs an application server to optimize performance and manage the limitations of single-threaded processes, especially for CPU-intensive tasks and monitoring in production environments.

Since 2018, Node.js has supported multithreading, allowing true parallelism by utilizing all available CPU cores, although this feature is not widely adopted.

The coordinator monitors worker threads, handles their lifecycle, and ensures observability by separating the control plane from the monitoring layer.

The Prometheus server runs on the main thread, making metrics always accessible and ensuring reliable health checks even under heavy load.

It allows for immediate restart of worker threads in case of crashes and proactive monitoring to prevent service degradation without losing requests.

This approach, based on a threading model, allows independent scaling of applications, efficient resource usage, and faster in-process communication.

VAT is an open-source Node.js application server developed by Platformatic, designed to improve performance, observability, and scalability by utilizing multithreading.

Matteo Collina offers a book titled 'The Definitive Guide for Node.js in Enterprise' for those interested in learning more.

The three pillars are: detecting and tracking application health, implementing fault tolerance, and handling failures gracefully to maintain service continuity.

Matteo Collina
Matteo Collina
18 min
26 Mar, 2026

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Matteo Collina discusses Node.js, its single-threaded design, and the introduction of threads in 2018 for parallelism and CPU utilization. Node.js production monitoring focuses on application health, fault tolerance, and event loop efficiency. VAT architecture improves Node.js applications with thread migration and monitoring. Node.js manages threads and failures independently with Prometheus monitoring. Scalability in Node.js involves Kubernetes clusters and in-process scaling. Next.js with React SSR for Node.js applications enables dynamic scaling and performance. Node.js handles CPU blocking and SSR performance by utilizing multiple threads.

1. Introduction to Node.js and Thread Utilization

Short description:

Matteo Collina discusses Node.js, its popularity, single-threaded design, and the introduction of threads in 2018 for true parallelism and CPU utilization.

Hi, everyone, I'm Matteo Collina, and today I'm going to walk you through our reasoning on why Node.js needs an application server. Before we start, let's talk a little bit about me. I am co-founder and CTO at a startup called Platformatic. I am also the chair of the Node.js Technical Steering Committee, so responsible for a lot of things regarding Node.js. I am also a member of the OpenJS Foundation Board and the GraphQL Foundation. I created a lot of modules in the past. In fact, with 42 billion downloads last year. Yeah, quite a lot.

Now, we need to talk a little bit about Node.js today. Node.js is everywhere. And last year, it got around 9 billion downloads. It's one of the most popular web development tools for building anything. Essentially, it's used by almost everybody from startups to small companies to Fortum 500. Everyone is using Node.js for one reason or another, and it also runs a lot of critical infrastructure.

It's fast and efficient, it's built on top of the V8 JavaScript engine, which is what powers Google Chrome, and it delivers excellent performance for IO bound applications. But there is one catch. Node.js is single threaded by design. If you ask chat.gpt or cloud mostly, that you would get this answer. That there is only one thread per process. In fact, the JavaScript VM, it only runs one JavaScript VM on a single event loop. It does non-blocking IO, it's great. And it has a lot of limitations for CPU intensive tasks. Are we sure? Is it still true? Did you hide in a cave? Maybe. Where have you been? Well, since 2018, Node.js has worked with threads.

2. Node.js Production Monitoring and Event Loop

Short description:

Node.js enables true parallelism and CPU utilization. Three pillars of running Node in production: track application health, implement fault tolerance, and monitor event loop for efficient performance.

And these enable true parallelism and to use all the cores that are available in your application, in your hardware. But this is not widely adopted. A lot of people don't know this. They don't know that they can use all the cores. They don't know they can use all the CPUs. And it's just like, OK, where have you been? Like, I'm sorry. This was one of the biggest things being added to Node.js ever. And you will not be using it mostly.

So why? Well, let's talk a little bit about running Node in production. So there are three pillars of running Node in production. The first one is you need to detect, to track the application health and ideally detect problems before they happen. A lot of these pass through having a lot of visibility on what is happening. So you need to have metrics. Also, you need to implement fault tolerance and handle failures gracefully and recover quickly from errors. You want to do that. You don't want to disrupt your end users if they are having a problem.

So how do you monitor health of an application? Well, first, the most important thing to know is how the Node.js event loop works. There is a time after initialization. The event loop runs continuously if there is some event to be processed. Specifically, first of all, it does checks if there's some pending callbacks from the previous run. Then run idle handles, which is our set immediate in JavaScript. Then it polls for IOM. And then it runs some close callbacks, some things like that. Then last but not least, it runs the timers. It's pretty great. However, as you can note from that, there's an observation problem. If your event loop is busy, it cannot easily observe itself. This is one of the key problems. How can a busy event loop observe itself? Because monitoring is blocked. If the event loop is not spinning, if it's doing some processing because the event loop is single threaded, we cannot do any monitoring on it.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Scaling Up with Remix and Micro Frontends
Remix Conf Europe 2022Remix Conf Europe 2022
23 min
Scaling Up with Remix and Micro Frontends
Top Content
This talk discusses the usage of Microfrontends in Remix and introduces the Tiny Frontend library. Kazoo, a used car buying platform, follows a domain-driven design approach and encountered issues with granular slicing. Tiny Frontend aims to solve the slicing problem and promotes type safety and compatibility of shared dependencies. The speaker demonstrates how Tiny Frontend works with server-side rendering and how Remix can consume and update components without redeploying the app. The talk also explores the usage of micro frontends and the future support for Webpack Module Federation in Remix.
Understanding React’s Fiber Architecture
React Advanced 2022React Advanced 2022
29 min
Understanding React’s Fiber Architecture
Top Content
This Talk explores React's internal jargon, specifically fiber, which is an internal unit of work for rendering and committing. Fibers facilitate efficient updates to elements and play a crucial role in the reconciliation process. The work loop, complete work, and commit phase are essential steps in the rendering process. Understanding React's internals can help with optimizing code and pull request reviews. React 18 introduces the work loop sync and async functions for concurrent features and prioritization. Fiber brings benefits like async rendering and the ability to discard work-in-progress trees, improving user experience.
Thinking Like an Architect
Node Congress 2025Node Congress 2025
31 min
Thinking Like an Architect
Top Content
In modern software development, architecture is more than just selecting the right tech stack; it involves decision-making, trade-offs, and considering the context of the business and organization. Understanding the problem space and focusing on users' needs are essential. Architectural flexibility is key, adapting the level of granularity and choosing between different approaches. Holistic thinking, long-term vision, and domain understanding are crucial for making better decisions. Effective communication, inclusion, and documentation are core skills for architects. Democratizing communication, prioritizing value, and embracing adaptive architectures are key to success.
Full Stack Components
Remix Conf Europe 2022Remix Conf Europe 2022
37 min
Full Stack Components
Top Content
RemixConf EU discussed full stack components and their benefits, such as marrying the backend and UI in the same file. The talk demonstrated the implementation of a combo box with search functionality using Remix and the Downshift library. It also highlighted the ease of creating resource routes in Remix and the importance of code organization and maintainability in full stack components. The speaker expressed gratitude towards the audience and discussed the future of Remix, including its acquisition by Shopify and the potential for collaboration with Hydrogen.
It's a Jungle Out There: What's Really Going on Inside Your Node_Modules Folder
Node Congress 2022Node Congress 2022
26 min
It's a Jungle Out There: What's Really Going on Inside Your Node_Modules Folder
Top Content
The talk discusses the importance of supply chain security in the open source ecosystem, highlighting the risks of relying on open source code without proper code review. It explores the trend of supply chain attacks and the need for a new approach to detect and block malicious dependencies. The talk also introduces Socket, a tool that assesses the security of packages and provides automation and analysis to protect against malware and supply chain attacks. It emphasizes the need to prioritize security in software development and offers insights into potential solutions such as realms and Deno's command line flags.
ESM Loaders: Enhancing Module Loading in Node.js
JSNation 2023JSNation 2023
22 min
ESM Loaders: Enhancing Module Loading in Node.js
Top Content
ESM Loaders enhance module loading in Node.js by resolving URLs and reading files from the disk. Module loaders can override modules and change how they are found. Enhancing the loading phase involves loading directly from HTTP and loading TypeScript code without building it. The loader in the module URL handles URL resolution and uses fetch to fetch the source code. Loaders can be chained together to load from different sources, transform source code, and resolve URLs differently. The future of module loading enhancements is promising and simple to use.

Workshops on related topic

AI on Demand: Serverless AI
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
AI on Demand: Serverless AI
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
In this workshop, we discuss the merits of serverless architecture and how it can be applied to the AI space. We'll explore options around building serverless RAG applications for a more lambda-esque approach to AI. Next, we'll get hands on and build a sample CRUD app that allows you to store information and query it using an LLM with Workers AI, Vectorize, D1, and Cloudflare Workers.
Building a RAG System in Node.js: Vector Databases, Embeddings & Chunking
Node Congress 2025Node Congress 2025
98 min
Building a RAG System in Node.js: Vector Databases, Embeddings & Chunking
Featured Workshop
Alex Korzhikov
Pavlik Kiselev
2 authors
Large Language Models (LLMs) are powerful, but they often lack real-time knowledge. Retrieval-Augmented Generation (RAG) bridges this gap by fetching relevant information from external sources before generating responses. In this workshop, we’ll explore how to build an efficient RAG pipeline in Node.js using RSS feeds as a data source. We’ll compare different vector databases (FAISS, pgvector, Elasticsearch), embedding methods, and testing strategies. We’ll also cover the crucial role of chunking—splitting and structuring data effectively for better retrieval performance.Prerequisites- Good understanding of JavaScript or TypeScript- Experience with Node.js and API development- Basic knowledge of databases and LLMs is helpful but not required
Agenda📢 Introduction to RAG💻 Demo - Example Application (RAG with RSS Feeds)📕 Vector Databases (FAISS, pgvector, Elasticsearch) & Embeddings🛠️ Chunking Strategies for Better Retrieval🔬 Testing & Evaluating RAG Pipelines (Precision, Recall, Performance)🏊‍♀️ Performance & Optimization Considerations🥟 Summary & Q&A
Build a MCP (Model Context Protocol) in Node.js
JSNation US 2025JSNation US 2025
97 min
Build a MCP (Model Context Protocol) in Node.js
Featured Workshop
Julián Duque
Julián Duque
Model Context Protocol (MCP) introduces a structured approach to LLM context management that addresses limitations in traditional prompting methods. In this workshop, you'll learn about the Model Context Protocol, its architecture, and how to build and use and MCP with Node.jsTable of Contents:What Is the Model Context Protocol?Types of MCPs (Stdio, SSE, HTTP Streaming)Understanding Tools, Resources, and PromptsBuilding an MCP with the Official TypeScript SDK in Node.jsDeploying the MCP to the Cloud (Heroku)Integrating the MCP with Your Favorite AI Tool (Claude Desktop, Cursor, Windsurf, VS Code Copilot)Security Considerations and Best Practices
Node.js Masterclass
Node Congress 2023Node Congress 2023
109 min
Node.js Masterclass
Top Content
Workshop
Matteo Collina
Matteo Collina
Have you ever struggled with designing and structuring your Node.js applications? Building applications that are well organised, testable and extendable is not always easy. It can often turn out to be a lot more complicated than you expect it to be. In this live event Matteo will show you how he builds Node.js applications from scratch. You’ll learn how he approaches application design, and the philosophies that he applies to create modular, maintainable and effective applications.

Level: intermediate
Build and Deploy a Backend With Fastify & Platformatic
JSNation 2023JSNation 2023
104 min
Build and Deploy a Backend With Fastify & Platformatic
Top Content
WorkshopFree
Matteo Collina
Matteo Collina
Platformatic allows you to rapidly develop GraphQL and REST APIs with minimal effort. The best part is that it also allows you to unleash the full potential of Node.js and Fastify whenever you need to. You can fully customise a Platformatic application by writing your own additional features and plugins. In the workshop, we’ll cover both our Open Source modules and our Cloud offering:- Platformatic OSS (open-source software) — Tools and libraries for rapidly building robust applications with Node.js (https://oss.platformatic.dev/).- Platformatic Cloud (currently in beta) — Our hosting platform that includes features such as preview apps, built-in metrics and integration with your Git flow (https://platformatic.dev/). 
In this workshop you'll learn how to develop APIs with Fastify and deploy them to the Platformatic Cloud.