• Mastering Stream Processing - Hoppping and Tumbling windows

    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...


  • Mastering Stream Processing - Introduction to windowing.

    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...


  • Completable Futures - Error Handling.

    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...


  • Relationship Between Streams and Tables

    In this blog post, we’re going to look deeper into adding state. Along the way, we’ll get introduced to new abstraction, the KTable, after which we will move further to discuss how event streams and database tables relate to one another in Kafka’s Streaming API. NOTE: (Save 37% off Kafka...


  • Creating a Yelling App in Kafka Streams

    This blog post will quickly get you off the ground and show you how Kafka Streams works. We’re going to make a toy application that takes incoming messages and upper-cases the text of those messages, effectively yelling at anyone who reads the message. This application is called the “Yelling Application”....