Designing a Service Mesh with Kafka and Sagas

Kafka has become more than a simple message bus: with a full stack of tooling and new concepts, it’s easy to start deploying complex service meshes, communicating through Kafka, enabling decoupled microservices, stable performance, high scalability and reusability. As the service mesh grows, so does complexity and management. Maybe we need to add a new validation or computational step. Maybe we need to reorder how we process messages from one topic to the other. But how can we manage this change, avoiding either making our microservices monoliths (distributed monolith), leading to complex and dangerous weekend reconfigurations? During our presentation, we will present an easy to implement solution over Kafka by injecting sagas (DAGs describing the execution path) into messages. This allows us to build simple and stateless microservices, providing an easy to reason about solution that is inherently extensible.

David Navalho
Head of Core Technologies, Marionete
Ricardo Miranda
Senior Consultant,