How to Instrument AWS Services with OpenTelemetry

In this AWS OpenTelemetry guide, you will learn how to instrument your AWS services with OpenTelemetry. I will demonstrate how to instrument a simple microservice system running on AWS. We will use AWS SQS, DynamoDB, and Lambda. First, we will create all the resources we require using Terraform and AWS. Secondly, we will instrument our […]
Distributed Tracing for RabbitMQ with OpenTelemetry

In this guide, you will learn how to use OpenTelemetry to instrument RabbitMQ to create spans for different operations. (e.g., consume and produce). We will then see how to visualize your traces in Jaeger and Aspecto. I will use Node.js for all code examples. Feel free to skip to the practical section of this guide if […]
How to Write Integration Tests for Kafka in NodeJS
Writing integration tests is usually not such a fun task. You need to replicate a real environment and test the connections between the different parts of the system. You cannot rely on mocking as you would in a unit test since you need to simulate the actual environment. In this tutorial, I’ll show you how […]
Distributed Tracing for Kafka with OpenTelemetry in Node
In this guide, you will learn how to run OpenTelemetry in Node to generate spans for different Kafka operations (e.g., consume and produce) and ultimately visualize your traces. We will also touch on the basics of Kafka, OpenTelemetry, distributed tracing, and how they all play out together. If you’re already familiar with Kafka and OpenTelemetry, […]
Distributed Tracing for Kafka with OpenTelemetry in Python
In this tutorial, I will cover Apache Kafka, OpenTelemetry, and how they play out together with practical examples in Python from 0 to 1. You will learn how to enable OpenTelemetry tracing in Python to generate spans and visualize traces for various Kafka operations. What to Expect What is Apache Kafka? What is OpenTelemetry? OpenTelemetry […]
How to Achieve End to End Visibility into Redis Pub/Sub Using OpenTelemetry

TL;DR – A step-by-step tutorial video + a GitHub demo repo are below. When it comes to complex microservices architecture, using messaging brokers is a no-brainer. Communicating over a message broker reduces the mutual awareness that services should have of each other to be able to exchange messages, effectively implementing decoupling which is the root […]
Kafka vs RabbitMQ vs AWS SNS/SQS: Which Broker to Choose?

Microservice applications rely heavily on messaging and asynchronous communications to keep everything working smoothly. Choosing the right message broker is one of the first critical choices you must make when developing the services that need to communicate with each other. Making the “right” choice can be a battle of features and edge cases that can be […]
How to Achieve End-to-End Microservices Visibility in Asynchronous Messaging with OpenTelemetry

TLDR: Watch this 5-min video (code snippets can be found below) Microservices have tons of benefits. They enable distributed development of highly scalable applications and unleashing the full potential of public cloud infrastructure. But there can be no good without evil. Microservices are DIFFICULT to understand and troubleshoot. When done right, microservices are asynchronous, which […]
How to Send Large SQS/SNS Messages with Node.js

One of the common problems that people have with SQS and SNS is a message size limit. At the time of this writing, you can only send messages that are less than 256 KiB in size, which may be not enough in some scenarios and use cases. Since it’s a common problem there’s a common solution […]