Keep Calm and Study On - Unlock Your Success - Use #TOGETHER for 30% discount at Checkout

Kafka Streams API for Developers Online Course

Kafka Streams API for Developers Online Course


This course is designed to help developers build real-time streaming applications using the Kafka Streams API. It covers everything from basic concepts to advanced techniques, including stateful operations, aggregation, joins, windowing, and error handling. You will gain hands-on experience by developing a real-time retail order management system and building RESTful APIs for querying streaming data. By the end of the course, you will be able to design, test, and deploy enterprise-grade Kafka Streams applications using Spring Boot and Kafka Streams API.


Key Benefits

  • Learn to build real-time data processing applications with Kafka Streams.
  • Understand how to structure Kafka Streams topologies for optimal performance.
  • Implement error-handling mechanisms for resilient applications.
  • Master stateful operations, including aggregation, joins, and windowing.
  • Develop RESTful APIs to retrieve real-time aggregated data.
  • Integrate Kafka Streams with Spring Boot for enterprise applications.
  • Write unit and integration tests for Kafka Streams applications.
  • Deploy Kafka Streams applications efficiently in a production environment.


Target Audience

This course is best suited for:

  • Java developers who want to specialize in real-time data processing.
  • Kafka developers looking to expand their knowledge into Kafka Streams API.
  • Big data engineers interested in building real-time analytics solutions.
  • Software architects designing event-driven microservices.
  • Developers who want to test and debug Kafka Streams applications effectively.


Prerequisites:

  • Proficiency in Java (Java 17 recommended).
  • Experience with Kafka Producers and Consumers.
  • Basic knowledge of event-driven architectures.
  • Familiarity with build tools like Gradle or Maven.


Learning Objectives

  • Gain a strong foundation in Kafka Streams API and its architecture.
  • Learn to build, test, and deploy real-time streaming applications.
  • Understand Kafka Streams topologies and how they process data.
  • Develop stateful Kafka Streams applications using aggregation, joins, and windowing.
  • Implement error-handling strategies to build fault-tolerant applications.
  • Integrate Kafka Streams with Spring Boot to develop enterprise-level applications.
  • Build REST APIs for real-time querying of streaming data.
  • Write unit tests and integration tests for Kafka Streams applications.
  • Package and deploy Kafka Streams applications as executable JAR files.

Course Content Overview

The Kafka Streams API for Developers Exam covers the following topics - 

Domain 1. Introduction and Course Setup

  • Overview of the course and key learning objectives.
  • Understanding the prerequisites required to get started.


Domain 2. Getting Started with Kafka Streams

  • Introduction to Kafka Streams API and its capabilities.
  • Explanation of key concepts, including topology and processor.
  • Understanding the KStreams API and how it works.


Domain 3. Developing a Simple Kafka Streams App

  • Introduction to the Greetings App, a basic Kafka Streams application.
  • Setting up the project environment.
  • Understanding the topology and components of the application.
  • Implementing and launching a Kafka Streams app.
  • Setting up Kafka locally and testing the application.


Domain 4. Exploring Kafka Streams Operators

  • Using filter and filterNot to refine data streams.
  • Understanding map and mapValues for data transformation.
  • Using flatMapValues and flatMap for breaking down complex messages.
  • Learning peek and merge for stream modifications.


Domain 5. Serialization and Deserialization in Kafka Streams

  • Understanding how Kafka Streams serializes and deserializes key-value pairs.
  • Configuring default serializers and deserializers in Kafka applications.
  • Creating custom Serdes for message transformation.
  • Using custom Serdes in the Greetings App for better message handling.


Domain 6. Building a Reusable Serializer/Deserializer

  • Developing a generic serializer/deserializer for different message types.
  • Integrating this generic serialization approach into Kafka applications.


Domain 7. Developing an Order Management System Using Kafka Streams

  • Overview of the real-time order management system.
  • Designing the data processing topology.
  • Separating restaurant and retail orders using split and branch operators.
  • Transforming order details into revenue-based data streams.


Domain 8. Understanding Internal Kafka Streams Mechanics

  • Exploring how topology, stream, and tasks interact internally.
  • Understanding the effects of modifying stream threads on processing behavior.


Domain 9. Handling Errors in Kafka Streams Applications

  • Identifying failures in Kafka Streams processing.
  • Understanding default deserialization error behavior.
  • Implementing a custom deserialization error handler.
  • Managing processing errors with custom solutions.
  • Handling Kafka cluster failures effectively.


Domain 10. Working with KTable and GlobalKTable

  • Introduction to KTable and GlobalKTable APIs.
  • Implementing a KTable topology for data storage.
  • Understanding how KTables function internally.


Domain 11. Performing Stateful Operations in Kafka Streams

  • Understanding aggregation, joins, and windowing operations.
  • Performing count-based aggregation in Kafka Streams.
  • Using the reduce and aggregate operators for processing events.
  • Storing aggregated data using materialized state stores.


Domain 12. Accessing Aggregated Data from State Stores

  • Retrieving aggregation results from Kafka Streams.


Domain 13. Stateful Operations in Order Management System

  • Counting total orders per store using count operator.
  • Calculating total revenue per store using aggregate operator.


Domain 14. Rekeying Kafka Records for Stateful Operations

  • Understanding the impact of null keys on stateful operations.
  • Using the selectKey operator to rekey Kafka records.


Domain 15. Joining Data Streams in Kafka Streams

  • Introduction to different types of joins in Kafka Streams.
  • Implementing inner joins between KStreams, KTables, and GlobalKTables.
  • Using left joins and outer joins for merging data streams.
  • Understanding the co-partitioning requirements for joins.


Domain 16. Performing Joins in Order Management System

  • Combining revenue data with store details using joins.


Domain 17. Working with Windowing in Kafka Streams

  • Introduction to windowing techniques in Kafka.
  • Implementing tumbling, hopping, and sliding windows.
  • Controlling window result emission using suppress operator.


Domain 18. Windowing in Order Management System

  • Extracting custom timestamps from events.
  • Aggregating orders and revenue within time windows.
  • Performing joins on windowed data.


Domain 19. Handling Out-of-Order Events in Windowing

  • Managing records with earlier and future timestamps.


Domain 20. Developing Kafka Streams Applications with Spring Boot

  • Setting up Kafka Streams with Spring Boot.
  • Configuring Kafka Streams using application.yml.
  • Developing Spring Boot Kafka Streams applications.


Domain 21. Spring Boot Auto-Configuration for Kafka Streams

  • Understanding automatic configuration in Spring Boot Kafka Streams.


Domain 22. JSON Serialization/Deserialization in Spring Kafka Streams

  • Implementing JsonSerde for JSON message handling.


Domain 23. Error Handling in Spring Kafka Streams

  • Managing deserialization errors using different approaches.
  • Handling uncaught exceptions in Kafka topology.


Domain 24. Building Order Management System with Spring Boot

  • Developing Kafka Streams topology for order processing.


Domain 25. Building REST APIs for Interactive Queries

  • Creating REST endpoints to query order count and revenue in real-time.


Domain 26. Testing Kafka Streams Applications

  • Writing unit tests using TopologyTestDriver.
  • Performing integration testing using Embedded Kafka.


Domain 27. Implementing Grace Period in Kafka Streams

  • Understanding grace period behavior in windowing operations.


Domain 28. Packaging and Deploying Kafka Streams Applications

  • Building Spring Boot Kafka Streams applications as executable JAR files.


Domain 29. Ensuring Exactly-Once Processing in Kafka Streams

  • Setting up exactly-once semantics in Kafka Streams.
  • Understanding transactions and idempotency in Kafka.


Domain 30. Running Kafka Streams Applications on Multiple Instances

  • Configuring multiple Kafka Streams instances for scalability.

Tags: Kafka Streams API for Developers Practice Exam, Kafka Streams API for Developers Online Course, Kafka Streams API for Developers Training, Kafka Streams API for Developers Tutorial, Learn Kafka Streams API for Developers, Kafka Streams API for Developers Study Guide