@rafaelgss tech blog

Node.js 2023 Year in An Article

5 months ago

Node.js 2023 Year in An Article Two months into 2024, I’ve decided to summarize the achievements in the Node.js space from 2023. As always, this list is curated by me, so I may overlook some pull requests due to the vast amount of work completed by Node.js collaborators and areas where I need more ... read more

Why you should pin your GitHub Actions by commit-hash

1 year ago

Why you should pin your GitHub Actions by commit-hash Supply chain attacks are not something new; we have heard about them extensively, and the maximum we can do is mitigate them as best as we can. However, it is crucial to acknowledge that these types of attacks will always exist. With that in min... read more

State of Node.js Performance 2023

State of Node.js Performance 2023 The year is 2023 and we’ve released Node.js v20. It’s a significant accomplishment, and this article aims to use scientific numbers to assess the state of Node.js’ performance. All the benchmark results contain a reproducible example and hardware details. To reduc... read more

Preparing and Evaluating Benchmarks

1 year ago

Preparing and Evaluating Benchmarks Benchmarking is all about getting reliable results and using those results as a baseline for further performance improvements. Therefore, if you don’t have reliable results, you have nothing, or worse you will be relying on false information that likely will lead... read more

Node.js Core - Neovim Setup

1 year ago

Node.js Core - Neovim setup Frequently, I’m asked about my setup when working on the Node.js codebase. To save everyone’s time, I wrote this quick blog post. It’s important to mention all recommendations are personal preferences, you can achieve the same behaviour using different tools. Currently... read more

HTTP Proxy Tunneling

2 years ago

HTTP Proxy Tunneling How much do you trust your HTTP Proxy Client? Most developers have at least heard about HTTP Proxy and some of them use it on a daily basis. They are excellent ways to intercept and debug HTTP requests made from your local environment. I strongly suggest checking them out. Th... read more

Network Performance in Real-world

2 years ago

Network Performance in Real-world Everybody knows or must know the famous statement: “Network is not reliable”. In fact, it’s true, however, it doesn’t means that you shouldn’t optimize it. If you got here by yourself, likely you understand why performance matters in the business. Otherwise, I rec... read more

Performance Methodologies

3 years ago

Performance Methodologies Poor performance costs the software industry millions of dollars annually in lost revenue, decreased productivity, increased development, hardware costs and damaged customer relations. Most applications tend to focus on correctness over performance. The shift towards perf... read more

Diagnostics Channel was released!

Diagnostics Channel The Node.js v15 landed a feature that should help a lot of APM vendors. The diagnostics_channel has the objective to have a centralized channel of events between modules. As stated in the blog release: diagnostics_channel is a new experimental module that provides an API to... read more

Node CPU Profiler

Node CPU Profiler How we can measure the performance? If you are a software engineer, you have already thought about the performance of your Node.js application. And probably saw the feature flag: --inspect or --inspect-brk to enable CDT(Chrome Dev Tools) and measure performance from there. Well,... read more

Autonomous Microservices - Outbox Pattern

Autonomous Microservices - Outbox Pattern In a microservice architecture the most of its complexity is in the consistency of the data. Very often the main questions are: “What’s the best way to communicate microservices so that one gets data from the other?” “How to expose in a single endp... read more

Vim Tips

4 years ago

Vim Tips This post is a aggregate of tips that I get it from vim The ideal world of VIM The ideal is one keystroke to move and one keystroke to execute. VIM are optimized to repetition with dot . keystroke, most of the commands that we are used to do in other text editors is not optimized for re... read more

Github Actions + Digital Ocean + Elixir ❤️

4 years ago

Github Actions + Digital Ocean + Elixir = ❤️ Today I performed an experiment with the new not so new CI from Github: Github Actions, implementing on my blog (yes, the one you are reading). The project has here, So, I ran this test with: Simple Droplet on DigitalOcean ($5) Elixir + Phoenix... read more

Communication between microservices - Asynchronous

4 years ago

Communication between microservices - Asynchronous Introduction to RabbitMQ and its achievements. In an architecture focused on microservices, two of its main key concepts are: scalability and resilience. Usually, the necessity is to have a communication between microservices in some way, eit... read more

Fastify, Why another JavaScript Framework?

5 years ago

Fastify, Why another JavaScript framework? An introduction to the concepts and motivations behind the framework. All of us know that the JavaScript ecosystem is builtin by several frameworks. In this article, I’ll show you a framework called Fastify and why it’s taken my attention. Fastify i... read more