Systems | Development | Analytics | API | Testing

Latest Posts

Managing Asynchronous Operations in Node.js with AbortController

In Node, managing asynchronous operations effectively (especially those involving I/O, like network requests or file system access) is crucial to prevent resource depletion. Managing async operations well also helps maintain optimal application performance when the results of operations are no longer required. The AbortController API addresses this need by providing a standardized mechanism to terminate operations gracefully.

Building a Distributed Rate Limiter in Elixir with HashRing

Communication between processes in the Erlang VM happens through message passing. In fact, all communication across processes occurs through the same mechanism. All you need is an address and you can send a message to it, with the lower level building blocks being send and receive. This is true even if that address is on another node in a cluster of Elixir nodes that are aware of each other. In fact, it works in exactly the same way.

Fuzz Testing REST APIs in Node.js

It’s not enough to just test our code's happy path (in other words, the error-free path we hope our users will take). To be really confident our code can’t be abused, either accidentally or on purpose, we must actively attack it to try and find ways of breaking it. If we don’t do this, someone else will, and they probably won’t be as friendly.

Tracking Errors in Tesla with AppSignal for Elixir

While Elixir provides built-in libraries (like HTTPoison) for making HTTP requests, the Tesla library has gained popularity due to its simplicity, ease of use, and extensibility. Tesla offers a clean and composable way to define requests, handle responses, and customize client behavior. Even so, whenever you're working with external APIs, errors are inevitable. Network issues, server downtime, rate limiting, and unexpected responses can all lead to errors in your application.

How to Use Regular Expressions in Python

Regular expressions, commonly known as regex, are a tool for text processing and pattern matching. In Python, the re module offers a robust implementation of regex, allowing developers to handle complex text manipulation efficiently. In this article, we'll get to grips with regular expressions and provide practical code examples — from the basic to more advanced — so you can understand how to use regex in Python.

A Deep Dive Into CommonJS and ES Modules in Node.js

For several years now, the Node.js ecosystem has been steadily shifting towards ES modules (ESM) as the preferred method for sharing and utilizing JavaScript code. While CommonJS has served the community well, ESM are rapidly gaining traction as they offer a standardized approach for creating JavaScript modules across all supported runtimes.

Distributed Phoenix: Deployment and Scaling

In part one of this series, we managed distributed state using GenServers. This provided a foundation for understanding some core concepts in distributed Phoenix applications. Now, we turn our focus to deployment and scaling strategies. As your application evolves to meet growing demands, knowing how to scale horizontally, maintain high availability, and monitor distributed components becomes crucial.

Find and Fix N+1 Queries in Django Using AppSignal

In this article, you'll learn about N+1 queries, how to detect them with AppSignal, and how to fix them to speed up your Django apps significantly. We'll start with the theoretical aspects and then move on to practical examples. The practical examples will mirror scenarios you might encounter in a production environment. Let's get started!

Unit Testing in Node.js With Jest

Unit tests are essential for increasing the test coverage of a backend application, ensuring its reliability, functionality, and robustness. Jest has become one of the most popular solutions when unit testing in Node, due to its intuitive API, zero-configuration philosophy, and flexible approach to code transpilation. In this guide, you will learn more about Jest, explore its features, and see it in action through a complete example. Become a Jest unit testing expert!

Server-sent Events and WebSockets in Rack for Ruby

In the previous part of this series, we discovered how to create persistent connections in Rack in theory, but now we'll put what we learned into practice. The web has two formalized specifications for communication over a persistent connection: server-sent events (SSEs) and WebSockets. WebSockets are widely used and highly popular, but SSEs are far less well-known. Let's explore them first.