Kafka Streams workshop

The training course “Building Applications Using Kafka Streams” is an intensive course that guides
participants through all the key aspects involved in using the Kafka Streams library to creating advanced applications that process data streams. During this training course participants will gain in-depth knowledge of this library and learn how to use it effectively it in practice.

Who this training is for?
The training is intended for developers, data engineers, system architects and anyone who wants to deepen their knowledge of Apache Kafka and Kafka Streams and learn how to create advanced applications that process data streams. The training is a natural continuation and extension of the knowledge gained during the Apache Kafka - a programmer's essentials training.

Main topics:

  • Introduction to Kafka Streams: the course will begin with a discussion of what Kafka Streams is and
    what benefits this library brings. Participants will learn how Kafka Streams integrates
    with Kafka and what its main features and capabilities are.
  • Kafka Streams API Basics: Participants will receive an introduction to the Kafka Streams API specification.
    Streams. They will have the opportunity to learn how to create data streams, perform
    transformations on the data, and how to combine different streams.
  • Configuration and Scaling: The next stage of the training will focus on configuration parameters,
    that allow you to customize the performance of your application. Participants will also learn how to
    scale Kafka Streams applications depending on the load.
  • Internal mechanisms of Kafka Streams: The training will go further and delve into the internal
    mechanisms of Kafka Streams, such as state management, window processing,
    replication and recovery mechanisms.
  • Practical applications: Participants will learn numerous practical applications of Kafka Streams,
    such as real-time processing of data streams, data analysis, monitoring and
    many others.
  • Additional topics: The training will be flexible, allowing the individual
    participants' needs. If there are specific topics related to Apache Kafka that
    interest the participants, the instructors will customize the training program.

Agenda

  1. Introduction into Kafka Streams
    1. Apache Kafka and Kafka Streams relation
    2. Applications with Kafka Streams architecture
    3. Case studies
  2. Kafka Streams components
    1. Streams topology
      1. Source vs Sink
    2. Time interpretation
    3. Stream-Table duality
    4. Data aggregation
    5. Time windows
    6. Unordered messages processing
  3. Kafka Streams internals
    1. How to choose number of partitions?
    2. Threads management
    3. State stores
      1. Partitioned
      2. Global
    4. Internal RocksDB for states store
    5. Changelog topic
    6. Repartition topic
    7. Exceptions handling
    8. Reset tool
    9. Topology visualization
  4. Kafka Streams business applications
    1. Counting messages
    2. Aggregating messages
    3. Joining Streams
    4. Interactive Queries
    5. Global state stores
  5. Application configuration parameters
  6. Detailed API review
    1. Streams creation
    2. Stateless processing
      1. Filter
      2. Map
      3. Change key
    3. Statefull processing
      1. Data aggregation
    4. Joining data
      1. Change key
      2. KStream-KStream join
      3. KTable-KTable join
      4. KStream-KTable join
      5. KStream-GlobalKTable join
    5. Windowing
      1. Hoping time windows
      2. Tumbling time windows
      3. Sliding time windows
      4. Session window
    6. Processor API
      1. Read Process Write applications
    7. Naming topology operations
    8. Monitoring data updates frequency
  7. Data types
    1. Serialiation
    2. Deserialization
    3. Custom data types
  8. Testing Kafka Streams applications
    1. Unit tests with Kafka Streams test utils library
  9. Read data from state stores
  10. Query API
    1. Interactive queries
    2. Standby replicas
  11. Transactions
    1. Exactly once processing
  12. Enterprise Integration Patterns implementation
    1. Saga
    2. Read-Process-Write
    3. Message sort
  13. Spring Boot support for Kafka Streams