Get Started Free

Introduction to Event Terms and Roles | Apache Kafka® Explained

Event design, event streaming, event-driven design, and more; what role does the event play in each of these approaches to using Apache Kafka®?

4 min

Introduction to Event Terms and Roles | Apache Kafka® Explained

4 min
lucia-cerchie

Lucia Cerchie

Event design, event streaming, event-driven design, and more; what role does the event play in each of these approaches to using Apache Kafka®? The Kafka landscape can get confusing with all this terminology; Lucia Cerchie guides you through it in this video.

Resources

Introduction to Event Terms and Roles | Apache Kafka® Explained

Intro

Hi, I'm Lucia Cerchie from Confluent. And in this video, we'll cover the differences between different terms in the world of event-driven architecture.

Apache Kafka Landscape

Events show up in a lot of different places within the Apache Kafka universe. For example, there's event-driven design, event sourcing, event design, etc. and hearing all these terms swirling around was very confusing to me at first. But that's why I created this video to distill them and so you don't have to go through that pain. So what is an event beyond a thing that happens? Let's get concrete. Events that might affect real time data pipelines and applications include things like Pinterest saves, USPS address changes, ship coordinate updates and credit card transactions. Now, events look like this in the Kafka universe, and you might look at that and wonder like, how is it different from an object? Well, it pretty much is one, but the answer lies in how we treat an event and the fact that it's immutable. So our first term here is event design.

Event Design

And event design is all about answering the question, what values go here? And that's affected by things like whether you want your events to be read by external versus internal systems, or how tightly coupled you want the relationship between parts of your structure to be.

Event Streaming

Next up, we have event streaming, so when we have a repeating phenomenon we want to measure like changes in temperature for an Internet of Things app. We can record that in something like a database or we can record a real time stream and doing operations like querying, joining, filtering and aggregation. That's stream processing.

Event-Driven Design

Now we have event-driven design and event-driven design is really, it's this umbrella term for all these other terms, the first of which is event sourcing. And that's when you choose to manage internal data like database metadata with events. Next up, you have event notification. Now event notification describes a pattern where you've got part of your architecture listening for an event and then executing logic in reaction to it. So you might have an event called Customer Email Update with a new customer email represented in an eCommerce data pipeline. Next up, we have event carried state transfer. Now event carried state transfer refers to a situation in which the state of the downstream systems is updated by incoming events. And this is different from an event which carries a notification because it affects the state directly. So for example, you might have a current customer email event which can hold the current state of the customer email within the event and transfer the state that way. Next up, we have command query responsibility segregation and that refers to separating the layers that read and write data. So events as a result of computations are written to a common data structure by one client and then they’re read in a separate one.

Learn More

Thank you so much for watching this video. If you'd like to learn more about any of these terms, I recommend heading over to Confluent Developer, there's a link below, to take one of the courses on these approaches to using events. There's also a link to a blog post that goes deeper into them and as always, hit that bell icon, like, and subscribe.