Adventures in Nodeland logo

Adventures in Nodeland

Subscribe
Archives
March 7, 2022

Fastify ⭐️ growth and other Adventures in Nodeland - Issue #50

Hi Everyone! Focusing on Open Source has been incredibly hard last week and in this edition I’m mostly reporting amazing work done by others. There are also quite a few interesting article at the end, ranging from an amazing story of breaking into tech to Capital One using software I developed. Cheers!

Fastify

I’ve recently discovered star-history.com, a website that allows to compare the history of stars in GitHub projects. Interestingly enough, Fastify and Express are growing at the same rate. Why is this important? It’s not! It was just a fun fact to report.

This week we had two releases of fastify-websocket. I probably should have combined them together!

Release v4.2.0 · fastify/fastify-websocket · GitHub
Release v4.2.0 · fastify/fastify-websocket · GitHub
basic websocket support for fastify. Contribute to fastify/fastify-websocket development by creating an account on GitHub.
github.com
Release v4.2.0 · fastify/fastify-websocket · GitHub
Release v4.2.0 · fastify/fastify-websocket · GitHub
basic websocket support for fastify. Contribute to fastify/fastify-websocket development by creating an account on GitHub.
github.com
Release v4.1.0 · fastify/fastify-websocket · GitHub
Release v4.1.0 · fastify/fastify-websocket · GitHub
basic websocket support for fastify. Contribute to fastify/fastify-websocket development by creating an account on GitHub.
github.com
Release v4.1.0 · fastify/fastify-websocket · GitHub
Release v4.1.0 · fastify/fastify-websocket · GitHub
basic websocket support for fastify. Contribute to fastify/fastify-websocket development by creating an account on GitHub.
github.com

We have finally settled a debate: Fastify plugins are always loaded asynchronously (using process.nextTick). I wonder why I didn’t think about it before, thank you Chris and care.com for using Fastify as the basis of their platform.

fix: delay plugin loading until next tick by chrskrchr · Pull Request #177 · fastify/avvio · GitHub
fix: delay plugin loading until next tick by chrskrchr · Pull Request #177 · fastify/avvio · GitHub
github.com
fix: delay plugin loading until next tick by chrskrchr · Pull Request #177 · fastify/avvio · GitHub
fix: delay plugin loading until next tick by chrskrchr · Pull Request #177 · fastify/avvio · GitHub
github.com
Release v8.1.3 · fastify/avvio · GitHub
Release v8.1.3 · fastify/avvio · GitHub
Asynchronous bootstrapping of Node applications. Contribute to fastify/avvio development by creating an account on GitHub.
github.com
Release v8.1.3 · fastify/avvio · GitHub
Release v8.1.3 · fastify/avvio · GitHub
Asynchronous bootstrapping of Node applications. Contribute to fastify/avvio development by creating an account on GitHub.
github.com
Release v7.2.5 · fastify/avvio · GitHub
Release v7.2.5 · fastify/avvio · GitHub
Asynchronous bootstrapping of Node applications. Contribute to fastify/avvio development by creating an account on GitHub.
github.com
Release v7.2.5 · fastify/avvio · GitHub
Release v7.2.5 · fastify/avvio · GitHub
Asynchronous bootstrapping of Node applications. Contribute to fastify/avvio development by creating an account on GitHub.
github.com

Pino

Release v7.5.2 · pinojs/pino-pretty · GitHub
Release v7.5.2 · pinojs/pino-pretty · GitHub
🌲Basic prettifier for Pino log lines. Contribute to pinojs/pino-pretty development by creating an account on GitHub.
github.com
Release v7.5.2 · pinojs/pino-pretty · GitHub
Release v7.5.2 · pinojs/pino-pretty · GitHub
🌲Basic prettifier for Pino log lines. Contribute to pinojs/pino-pretty development by creating an account on GitHub.
github.com

Mercurius

Release v1.5.0 · mercurius-js/cache · GitHub
Release v1.5.0 · mercurius-js/cache · GitHub
Contribute to mercurius-js/cache development by creating an account on GitHub.
github.com
Release v1.5.0 · mercurius-js/cache · GitHub
Release v1.5.0 · mercurius-js/cache · GitHub
Contribute to mercurius-js/cache development by creating an account on GitHub.
github.com

Read up the story of Giulia - she holds a degree in Philosophy and she just joined NearForm as a senior developer:

Release v1.6.0 · mercurius-js/cache · GitHub
Release v1.6.0 · mercurius-js/cache · GitHub
Contribute to mercurius-js/cache development by creating an account on GitHub.
github.com
Release v1.6.0 · mercurius-js/cache · GitHub
Release v1.6.0 · mercurius-js/cache · GitHub
Contribute to mercurius-js/cache development by creating an account on GitHub.
github.com

Node.js

Will WebAssembly make JavaScript disappear? Read up a story of a (failed) WebAssembly rewrite:

Release v4.15.0 · nodejs/undici · GitHub
Release v4.15.0 · nodejs/undici · GitHub
An HTTP/1.1 client, written from scratch for Node.js - Release v4.15.0 · nodejs/undici
github.com
Release v4.15.0 · nodejs/undici · GitHub
Release v4.15.0 · nodejs/undici · GitHub
An HTTP/1.1 client, written from scratch for Node.js - Release v4.15.0 · nodejs/undici
github.com

https://github.com/addaleax/synchronous-worker/pull/5

I have been exploring the use of isolates in great detail recently, and I found a bug in Anna’s syncrhonous-worker. While I failed at finding a good solution for it, she fixed it very quickly, thank you! I’ve later integrated the change in fastify-isolate: https://github.com/mcollina/fastify-isolate/pull/4.

Fix outer env’s timers being run during inner env’s FreeEnvironment by addaleax · Pull Request #5 · addaleax/synchronous-worker · GitHub
Fix outer env’s timers being run during inner env’s FreeEnvironment by addaleax · Pull Request #5 · addaleax/synchronous-worker · GitHub
Fixes: #4
github.com
Fix outer env’s timers being run during inner env’s FreeEnvironment by addaleax · Pull Request #5 · addaleax/synchronous-worker · GitHub
Fix outer env’s timers being run during inner env’s FreeEnvironment by addaleax · Pull Request #5 · addaleax/synchronous-worker · GitHub
Fixes: #4
github.com

News

SQLite can now process JSON fields with a similar syntax of PostgreSQL! Check it out:

Building a Career in Software Development - NearForm
Building a Career in Software Development - NearForm
Welcome to the second instalment of our career kick-off blog, where we will be interviewing NearFormers across our business functions to learn more about what their role entails, how they progressed into their current roles, and to showcase the diverse career progression stories that our team have.
www.nearform.com
Building a Career in Software Development - NearForm
Building a Career in Software Development - NearForm
Welcome to the second instalment of our career kick-off blog, where we will be interviewing NearFormers across our business functions to learn more about what their role entails, how they progressed into their current roles, and to showcase the diverse career progression stories that our team have.
www.nearform.com

Is WASM always a good solution for speeding up Node.js system? Read about the failed journey or reimplementing the Node.js URL parser in Web Assembly:

Implementing Node.js URL parser in WebAssembly with Rust
Implementing Node.js URL parser in WebAssembly with Rust
6 min read WHATWG URL
www.yagiz.co
Implementing Node.js URL parser in WebAssembly with Rust
Implementing Node.js URL parser in WebAssembly with Rust
6 min read WHATWG URL
www.yagiz.co

The SQLite ecosystem is evolving fast. Recently it added JSON processing capabilities similar to the ones of PostgreSQL. Check it out:

JSON improvements in SQLite 3.38.0
SQLite 3.38.0 introduced improvements to JSON query syntax using -> and ->> operators that are similar to PostgreSQL JSON functions. In this post we will look into how this simplifies the query syntax.
tirkarthi.github.io

NearForm is growing very quickly and we needed a tool to automatically release all our modules to npm without manually inserting the OTP. Check out Optic:

Optic - Secure Npm Release Automation - NearForm
Optic - Secure Npm Release Automation - NearForm
The goal of software delivery is to release software to users and consumers. Automating the release pipeline with CI (Continuous Integration) and CD (Continuous Delivery) makes it easier to release high-quality code more often and faster.
www.nearform.com

We have a large team of maintainers for our libraries at NearForm - so we had to streamline how we handled the release secrets: check out Optic!

How Capital One Builds Micro-Frontends At Scale | Capital One
How Capital One Builds Micro-Frontends At Scale | Capital One
In the late 2000s, Capital One’s Card organization set out to build a contact center application to make sure we could provide the highest level of service to our customers. It had to handle a high volume of calls across 20,000+ agents and the application also had to uphold high levels of security and regulatory compliance.
www.capitalone.com
How Capital One Builds Micro-Frontends At Scale | Capital One
How Capital One Builds Micro-Frontends At Scale | Capital One
In the late 2000s, Capital One’s Card organization set out to build a contact center application to make sure we could provide the highest level of service to our customers. It had to handle a high volume of calls across 20,000+ agents and the application also had to uphold high levels of security and regulatory compliance.
www.capitalone.com
The future of Micro-Frontends
The future of Micro-Frontends
Photo by Randy Tarampi on Unsplash Between the end of 2021 and the early weeks of 2022, I spent some time looking at where the micro-frontends journey is arrived so far.

medium.com
Don't miss what's next. Subscribe to Adventures in Nodeland:
GitHub X YouTube LinkedIn