Notes on Co-evolving Tracing and Fault Injection with Box of Pain

This paper explores how related tracing and fault injection systems are, and if they should be part of the same thing. The space of possible executions of a distributed system is exponential in the number of communicating precesses and the number of messages, […] […] some of the most pernicious bugs in distributed programs involve mistakes on how programs handle partial failure of remote components. In order to expose this failures, fault injection mechanisms are used to cause network partitions, or machine crashes.
Read more

Making sense of Event-Driven Systems @ Oracle Code One 2019

Presented at Oracle Code One 2019
Read more

Making sense of Event-Driven Systems @ Kafka Summit 2019

Presented at Kafka Summit NYC 2019
Read more

The Importance of Distributed Tracing for Apache Kafka Based Applications

Originally posted in Confluent Blog Apache Kafka® based applications stand out for their ability to decouple producers and consumers using an event log as an intermediate layer. One result of this is that producers and consumers don’t know about each other, as there is no direct communication between them. This enables choreographed service collaborations, where many components can subscribe to events stored in the event log and react to them asynchronously.
Read more

The Importance of Observability for Kafka-based applications with Zipkin @ Oslo Apache Kafka Meetup

Presented at Oslo Apache Kafka Meetup
Read more

Notes on Kafka, Samza and the Unix Philosophy of Distributed Data

Read more

Data on the Outside vs Data on the Inside

I found this paper as relevant and accurate today as it was in 2005, when it was published. It is fascinating how even 12 years later and with new technologies in vogue, same concepts keep applying.
Read more

Distributed Tracing with OpenTracing @ NoSlidesConf 2017

Presented at NoSlidesConf 2017
Read more

Tracing Kafka applications

for a more updated version, check https://jeqo.github.io/posts/2019-03-26-importance-of-distributed-tracing-for-apache-kafka-based-applications/ Tracing is one of the hardest time in integration or microservice development: knowing how a request impact your different components, and if your components have behave as expected. This could be fairly easy if we have monolith where we have one database and with some queries or checking one log file you can validate everything went well. Once you introduce distributed components and asynchronous communication this starts to get more complex and tedious.
Read more

From Messaging to Logs with Apache Kafka @ OUGN 2017

Presented at OUGN 2017
Read more