Kafka Streams API For Developers using Java/SpringBoot 3.X

Why take this course?
¡Hola! It seems like you're looking to understand how to implement windowing functionality in a Kafka Streams application within a SpringBoot context, as well as how to test it effectively. The outline you provided is comprehensive and covers a wide range of topics from basic concepts to advanced features like windowing, error handling, and testing.
To achieve this, you'll need to have a good grasp of Java, Kafka Streams API, and SpringBoot. Here's a brief summary of what each section typically involves:
-
Introduction to Windowing and Time Concepts: Understanding the basics of how Kafka Streams handles time and event-time vs. processing-time, and how these concepts are used in windowing operations.
-
Windowing in Kafka Streams - Tumbling Windows: You'll learn how to define tumbling windows, which process records in fixed-size or fixed-length intervals.
-
Control Emission of Windowed Results using "suppress" Operator: This operator allows you to control the emission of results from windowed streams, which can be useful for managing high-cardinality data.
-
Windowing in Kafka Streams - Hopping Windows: Different from tumbling windows, hopping windows move forward in time by a fixed interval after processing each window.
-
Windowing in Kafka Streams - Sliding Windows: These windows slide over the data stream, maintaining a fixed-size window that overlaps with its predecessor, allowing for real-time aggregations and trend analysis.
-
Widowing in Order Management Application - A Real Time Use Case: You'll apply what you've learned to an order management application scenario, coding and testing the windowing logic in a real-world context.
-
Behavior of Records with Future & Older Timestamp in Windowing: Understanding how records with timestamps that are older or in the future relative to the window's boundary are handled by Kafka Streams.
-
SpringBoot AutoConfiguration of Kafka Streams: Exploring how SpringBoot automatically configures your Kafka Streams application, simplifying the setup process.
-
JSON Serialization/Deserialization in Spring Kafka Streams: Implementing JSON serialization and deserialization in your Kafka Streams application using SpringBoot.
-
Error Handling in Spring Kafka Streams: Learning how to handle errors that may occur during stream processing, including Deserialization errors and uncaught exceptions within the topology.
-
Build Orders Kafka Streams Application using SpringBoot: Setting up and implementing a streaming application for orders.
-
Grace Period in Kafka Streams: Understanding the grace period option that allows new source records to be processed even if they are outside the current window's end time by a specified amount of time (e.g., 1 seconds). This feature is useful when processing late data.
-
Build and Package the SpringBoot App as an Executable: Finally, you will package your Kafka Streams application as an executable JAR file, which can be run from the command line. Throughout this process, you'll also learn about:
- Testing Framework: Used for unit testing of your code.
- Embedded Kafka: For integration testing.
- Kafka Streams API: The core functionalities provided by Kafka Streams. By following the outlined steps and understanding the concepts involved, you'll be able to build a robust application using Kafka Streams within a SpringBoot ecosystem. Good luck with your project!
Loading charts...