Earlier this year, I completed the 2nd edition of Kafka Streams in Action . Even though it’s a second edition, there were several things I wanted to change from the first edition, so it ended up being mainly a complete rewrite. Writing a book is a significant undertaking, and while it’s probably the most challenging task I’ve ever undertaken, it was gratifying. I don’t regret the amount of time I…
We’ve covered a lot of territory in this blog series about windowing aggregations. Here are the previous posts: Introduction to windowing Hopping and Tumbling windows Sliding windows and OVER aggregation Session windows Cumulating windows Window time semantics Viewing and analyzing results Testing Kafka Streams windowed applications In this final installment, we will cover testing a windowed…
In this blog series about windowing aggregations we’ve covered a lot of territory. Here are the previous posts: Introduction to windowing Hopping and Tumbling windows Sliding windows and OVER aggregation Session windows Cumulating windows Window time semantics Viewing and analyzing results In this final installment, we will cover testing a windowed application. Testing is essential to validate…
This is the sixth blog in a series on windowing in event stream processing. Here’s a list of the previous posts: Introduction to windowing Hopping and Tumbling windows Sliding windows and OVER aggregation Session windows Cumulating windows Window time semantics In this post, we’ll move on from covering the specific window implementations and discuss the viewing and analysis techniques for windowed…
In the previous blog in this series, we wrapped up coverage of the different windowing types. Here is the list of earlier installments in this series: Introduction to windowing Hopping and Tumbling windows Sliding windows and OVER aggregation Session windows Cumulating windows In this post, we’ll move on from specific code examples and discuss the time semantics of window advancement and the…
In the third installment of this windowing blog series, you’ll learn about cumulating and session windows. In previous posts, we’ve covered hopping and tumbling windows and sliding windows and the Flink SQL equivalent - OVER aggregations . The cumulate window is unique to Flink SQL. The session window has been available in Kafka Streams since version 0.10.2 and is going to be available in the…
In the third installment of this windowing blog series, you’ll learn about sliding windows and a bit of SQL. In the previous post, we covered hopping and tumbling windows, both of which Kafka Streams and Flink SQL provide. In this installment, we will discuss sliding windows, supported by Kafka Streams and Flink SQL, or the logical equivalent in both. Let’s jump into sliding windows. Sliding…
In the first post of this series, we discussed what event streaming windowing is, and we examined in detail the structure of a windowed aggregate in Kafka Streams and Flink SQL. In this post, we’ll dive into two specific windowing implementations: hopping and tumbling windows. Hopping windows A hopping window has a fixed time length, and it moves forward or "hops" at a time interval smaller than…
Stream processing is the best way to work with event data. While batch processing still has its use cases, and probably always will, only stream processing offers the ability to respond in real-time to events. But if we zoom in, what does it look like to respond to events? By now, I’m sure you’re familiar with the oft-quoted fraud scenario - a person with nefarious intent gets a hold of an unaware…
Some time ago, over 2 years, I started a 3 part series on the CompletableFuture . I’m just now getting around to doing part two now. My long time delay in completing this series was due to working in my book Kafka Streams in Action . But now that’s done I can get back to doing some blogging again. Earlier this year I started a series on a new class introduced in Java 8, the CompletableFuture…