Adventures in Nodeland - Issue #24
Hello Folks!
Welcome to Adventures in Nodeland, the newsletter where I cover my Open Source activity of the last week, as well as some interesting articles I stumble on Tech Twitter.
The first Pull Request I would like to highlight is the new error handling of Fastify@4 which will be released in the coming months. We will finally enable you to nest error handler in plugins and support throwing in them to break out of the encapsulation jail. The result is that you can handle your errors as close as possible to their throwing point.
I have starting to prepare the release announcement blog post for pino@7, including the long-awaited transports. I have also done some good benchmarks showing that the new system is just a bit faster than using unix pipes and multi processes! I’m thrilled.
In the meanwhile I did a few fixed to pino, including a long-overdue fix on the async destinations, making them auto-flushing on exit in Node.js v14+.
Mercurius got a new release as well this week to fix a bad bug that prevented to use the same directive on multiple federated services. Thanks Jonny for the fix!
Interesting Articles: Database edition
This week I have been interested in storing data. The first article is from PlanetScale, one of the most interesting database startups out there. Recently they implemented a new feature that made it possible for them to handle the high connection count of serverless. Check it out:
What is a data mesh? How would you structure your data for analytical workload?
Fauna is a transactional database wrapped in a GraphQL API. The following article covers out to use it with Fastify!
Something that really fascinated me from the time of WebSQL was the ability to run a full SQL database inside a web browser. James Long takes it SQLite in the browser to a completely new performance level by storing data in IndexedDB. Check it out:
AWS has finally shipped a version a Redis that supports durable storage - one of the main drawbacks of ElastiCache. I can’t wait to use it in my next architecture: