Kafka Streams in Action teaches you everything you need to know to implement stream processing on data flowing into your Kafka platform, allowing you to focus on getting more from your data without sacrificing time or effort.
Foreword by Neha Narkhede, Cocreator of Apache Kafka
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the Technology
Not all stream-based applications require a dedicated processing cluster. The lightweight Kafka Streams library provides exactly the power and simplicity you need for message handling in microservices and real-time event processing. With the Kafka Streams API, you filter and transform data streams with just Kafka and your application.
About the Book
Kafka Streams in Action teaches you to implement stream processing within the Kafka platform. In this easy-to-follow book, you'll explore real-world examples to collect, transform, and aggregate data, work with multiple processors, and handle real-time events. You'll even dive into streaming SQL with KSQL! Practical to the very end, it finishes with testing and operational aspects, such as monitoring and debugging.
What's inside
About the Reader
Assumes some experience with distributed systems. No knowledge of Kafka or streaming applications required.
About the Author
Bill Bejeck is a Kafka Streams contributor and Confluent engineer with over 15 years of software development experience.
Quite dry, but otherwise nearly flawless - I have nearly zero Kafka Streams prior experience (though I need "core" Kafka & similar CEP engines like Apache Storm), but I was able to easily follow both less & more advanced concepts. Only the chapter about KTables could use more illustrations to grasp the concepts (especially mixing paradigms of streams & tables), but it was still manageable.
Drawbacks? As with many "narrowly-specialized" tech books - it will probably age quite fast, so you better catch it quickly, while it's still hot. Having a prior knowledge in Kafka and/or EDA is helpful, yet not required (the book covers basics of Kafka). There's not much on using non-Java clients, but frankly - I don't find it an issue at all.
Solid stuff, once you realize it's a narrowly specialized, very focused book. Recommended.
Quite a good introduction to kafka streams. Maybe the repartitioning explanations were a bit fuzzy.
Besides, the subtitle suggests that it will describe kafka streams applications in terms of microservices architecture, but actually it does not get in any detail about it. This is maybe the biggest flaw I could object here: relating the kafka streams architecture with respect to other architectures: micro services cluster, Spark cluster... For me the advantages of kafka streams is to leverage existing technologies and avoiding to have to setup an additional compute cluster. So it unifies tech stacks and allows to simplify the data pipeline tech horizon. But this is not addressed at all.
Still, the book has good operational explanations and was interesting enough for me to finish it completely: always a good indication :)
Similar to other Kafka Streams books, second edition of Kafka Stream in Action does a great job at introducing the basics, as well as dipping the toes in some of the internals but that is about it.
Many chapters in the book deal primarily with Kafka (in fact, only Part 3 is concerned with Kafka Streams themselves), which on the one hand allows the book not to require foreknowledge of any specific technologies, but on the other it makes people familiar with Kafka skip almost half the written pages.
While it was an interesting read with decent examples, the book rarely dealt with some of the more advanced topics of Kafka Streams or concerns one may have when actually running a Kafka Streams application in production -- which types of workloads can you run on Kafka Streams? what to look out for in cloud native deployments? hardware spec considerations with some back of the envelope estimates and recommended deployment configurations, e.g. when should we use in memory state stores, how fast should the disks be, is the latency of EBS/NAS storage manageable and up to which point, when do ve start needing low-latency nvmes, how to pull it off in k8s? non-trivial discussions of how to handle large datasets and hot stanbys? how to monitor and troubleshoot?
On the rare occasions when it did decide to dive deep it offered less detailed discussion than what you could find in the official docs and on the Confluent blog. On the plus side, I do think this would be a great intro for someone who's never had any contact with Kafka Streams or ksqlDB before - it's definitely easier to navigate than the official docs.
I read the book after working for several weeks with Kafka-Streams and for several months with Kafka. It is a great book, one of the best books I've read until now from Manning. It has a lot of examples that are very well explained. I understood how to use Kafka Streams, how the library it's built and how it's working. The code archive is very valuable also, it has a lot of code that is very nice and well explained and also you can depict how to integrate the library into your business code using some patterns.
this is quite dry and completely focus on Kafka Stream, the book bases on a case study and try to go deeper in detail of implementation which achieves his goal. If you're interested in get the hand on, then this book is good. If you want to have an highly understanding of Kafka Stream but do not have enough time to follow, then this book is not the right one.
Covers a broad range of topics with examples. A good resource if you want to learn how to use Kafka streams.
However the explanations could get too convoluted and some diagrams were not helpful at illustrating the concepts at hand. Be prepared to spend more time than necessary to go through each chapter.
At this point it's slightly outdated, e.g. code examples use methods and classes that are now deprecated, but it's great for getting a good overview of the principles and at least makes you conversational in Kafka Streams!
I really liked this book, well structure, nicely written ... good pace. The only thing I was missing was that there was never a full code overview in the book, you always had to go to the source code on your computer to see it ... which made it a jumpy read. They should have added the full code after each chapter as in "Reactive Design Patterns" for example ...