

Jaeger does the heavy lifting and ultimately paints the pretty picture, while OpenTracing ( ) provides the APIs I will use to interact with it. It records and illustrates the life cycle of transactions as they propagate through a distributed system. Jaeger ( ) is an open source distributed tracer. The source code for that example project is available on GitHub here: What is Jaeger? What is OpenTracing? I plan to demonstrate how Jaeger is up to that challenge while navigating the pitfalls of an example project. And because Kafka decouples consumers and producers (meaning applications do not directly communicate with each other) it can be a challenge to illustrate exactly how data flows through your system. In other words, you are working within a distributed system. If you’re using a version of Java that doesn’t support records, you can use the old version of this file available on GitHub.If you are using Apache Kafka, you are almost certainly dealing with many applications that need to work together to accomplish some big picture goal. We need to use the annotations for the record fields so Jackson can deserialize it properly.

This is the Java record that we will use as Kafka message. We define the Kafka topic name and the number of messages to send every time we do an HTTP REST request. The second block is application-specific. Note that this property is redundant if you use the default value, localhost:9092.

The easiest way to get a skeleton for our app is to navigate to, fill in the basic details for our project and select Kafka as a dependency.
