View profile

Adventures in Nodeland - Issue #27

Matteo Collina
Matteo Collina
Hi Everyone,
Last week I have been busy doing Open Source, leading projects, organizing NodeConf and the Italian NearForm meetup. There are a few new releases to talk about, so let’s dive in…

Photo of Milano Marittima taken from the sea, shot by my colleague Cody
Photo of Milano Marittima taken from the sea, shot by my colleague Cody
…litterally! Last weekend a few colleagues at NearForm traveled from all over Italy, France, Portugal and Serbia to Milano Marittima for a retreat! It has been an amazing experience. This is probably the part of of NearForm I missed the most: meeting people from all over the places and spend some quality time with them. If you are interested in participating in the next meetup, check us out at!
Shaping a better world
Last but not least, this Wednesday (2021/09/22) I will be speaking at the Red Hat DevNation Day 2021 on “Why Fastify”. Check it out:
DevNation Day 2021 | Red Hat Developer
On the 20th of October I will be delivering a Workshop on Fastify. The price is 20€ and it will all go to charity.
The Fastify Workshop
The Fastify Workshop
Node.js
There is a good & bad news regarding ESM & Node.js core. However I think I need to provide a bit more context before breaking the news. I have always been a critic of the mass-move to ESM as recommended by a few other OSS maintainers as ESM was lacking certain features that we rely on every day while developing Node.js applications: module mocking and tracing / APM. ESM makes module resolution static and deterministic (which is good) but it cannot be altered at runtime and in order to support module mocking, tracing, code coverage and other things you need to install a loader before Node.js starts. This fundamental feature is actively worked on and it is not stable yet: we have just landed a significant breaking change to improve it. We are sorry this will disrupt some of your workflows.
esm: consolidate ESM Loader methods by JakobJingleheimer · Pull Request #37468 · nodejs/node
We have also released v4.6.0 of Undici last week which includes many fixes and a few new features. Application Performance Monitoring providers are starting to investigate how to support Undici: we added diagnostic_channel support, you can find the docs in https://github.com/nodejs/undici/blob/main/docs/api/DiagnosticsChannel.md.
Release v4.6.0 · nodejs/undici · GitHub
Over the weekend I landed a new option to Node.js HTTP/1.1 server to limit the number of maximum connections. This will be useful to help the coordination between the load balancer and Node.js servers to spread the load evenly between all the available peers.
Fastify
Las tweek has seen some activity on Fastify with me releasing v3.21.1, v3.21.2 and v3.21.3 in rapid succession. Check them out.
You can read more about the main change in the two following links, one describing the problem and a small PR describing the solution. They are worthwhile to read to understand more how debug JavaScript performance issues regarding shapes and megamorphic code. Read up:
Are conditionally set decorated properties deoptimized? · Issue #3316 · fastify/fastify · GitHub
We also shipped a new features for mercurius-auth to support authorization on type definition inside GraphQL schema.
Release v1.2.0 · mercurius-js/auth
Pino
Thanks to Igor Savin and the maintainers of colorette, we fixed an old regression in pino-pretty that caused colors to not be rendered in certain cases. Now it’s fixed!
Release v7.0.1 · pinojs/pino-pretty · GitHub
Interesting news
Here are a few articles that sparked some insights, I think you might find them interesting too.
The effects of remote work on collaboration among information workers | Nature Human Behaviour
The Show Must Go On: Securing Netflix Studios At Scale
Did you enjoy this issue? Yes No
Matteo Collina
Matteo Collina @matteocollina

I write about my journey as a core contributor of Node.js, as an author and a maintainer of many modules - including Fastify and Pino. In addition, I speak at conferences, and I will add links to all my talks in case you missed one.

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Created with Revue by Twitter.