Mastering Kafka Streams and ksqlDB

Read the early release chapters? Please answer 6 short questions so we can improve it.

Get the Book

The early release chapters are currently available for free on the O'Reilly Learning platform. All you need to do is:
  • Sign into your O'Reilly account, OR Start your free trial on this page
  • Once you are signed in, start reading the first chapter here
Note: digital and print copies will be available in the usual places (ebook shops, Amazon, book stores) in January 2021. If you'd like to pre-order from Amazon, click here.

Help the Book

  • Read the early release chapters and provide honest feedback to help us create an awesome reading experience. All feedback is welcome
  • Review the early release chapters here
  • Star the code repository
  • Follow @kafka_book on Twitter (character limits... sigh)
  • Share the book, website, and/or code with your friends and colleagues

About the author

My name is Mitch Seymour and I am a tech lead and staff engineer on the Data Services team at Mailchimp. I have been working with Kafka Streams since 2016 and ksqlDB since 2017 (back when it was just called KSQL). I have spoken about these technologies at company tech talks, local meetups, and international conferences (Kafka Summit London, 2019). I have also contributed to the ksqlDB code base and the Confluent blog. This book is my newest and biggest venture yet, and I am excited to share these technologies with the world.

Outside of work, I am a proud father and husband. I also run a non-profit called Puplift, eat a lot of Thai food, and occasionally make music. I am excited to add "Author" to the many hats I currently wear, and I hope you enjoy reading this book.


As we get closer to the final publication of this book, we will be releasing additional raw and unedited chapters. If you would like to receive an early look at this content, please provide your email below.



First and foremost, I want to thank my wife, Elyse, and my daughter, Isabelle. Writing a book is a huge time investment, and your patience and support through the entire process helped me immensely. As much as I enjoyed writing this book, I missed you both greatly, and I look forward to having more date nights and daddy-daughter time again.

I also want to thank my parents, Angie and Guy, for being a never ending source of encouragement. When others say my ideas or ambitions are unrealistic, you remind me that hard work can overcome the limitations other people set for you.

This book would not be possible without the following people, who dedicated a lot of their time to reviewing its content and providing great feedback and advice along the way: Matthias J. Sax, Robert Yokota, Nitin Sharma, Rohan Desai, and Jeff Bleiel. Thank you all for helping me create this book, it’s just as much yours as it is mine.

Many of the tutorials were informed by actual business use cases, and I owe a debt of gratitude to everyone in the community who openly shared their experiences with Kafka Streams and ksqlDB, whether it be at conferences, on podcasts, blogs, or even in-person interviews. Your experiences helped shape this book, which puts a special emphasis on practical stream processing applications. Nitin Sharma also provided ideas for the Netflix-inspired ksqlDB tutorials, and Ramesh Sringeri shared his stream processing experiences at Children’s Healthcare of Atlanta, which inspired the predictive healthcare tutorial. Thank you both.

Special thanks to Michael Drogalis for being a huge supporter of this book, even when it was just an outline of ideas. Also, thank you for putting me in touch with many of this book’s reviewers, and also Jay Kreps, who graciously wrote the forward. The technical writings of Yeva Byzek and Bill Bejeck have also set a high bar for what this book should be. Thank you both for your contributions in this space.

There have been many people in my career that helped get me to this point. Mark Conde and Tom Stanley, thank you for opening the doors to my career as a software engineer. Barry Bowden, for helping me become a better engineer, and for being a great mentor. Erin Fusaro, for knowing exactly what to say whenever I felt overwhelmed, and for just being a rock, in general. Justin Isasi, for your continuous encouragement, and making sure my efforts don’t go unrecognized. Sean Sawyer, for a suggestion you made several years ago, that I try a new thing called “Kafka Streams”, which has clearly spiraled out of control. Thomas Holmes and Matt Farmer, for sharing your technical expertise with me on many occasions, and helping me become a better engineer. And to the Data Services team at Mailchimp, thanks for helping me solve some really cool problems, and for inspiring me with your own work.