Workshop Kafka Streams

workshop kafka streams

Date: 18 May, 9:00 – 13:30
Trainers: Felix Crisan, Valentina Crisan
Location: Adobe Romania , Anchor Plaza, Bulevardul Timișoara 26Z, București 061331

Number of places: 20 no more places left

Streams processing is one of the most active topics in big data architecture discussions nowadays, with many open and proprietary solutions available on the market ( Apache Spark Streaming, Apache Storm, Apache Flink, Google DataFlow..). But starting with release Apache Kafka as well introduced the capability to process the streams of data that flow through Kafka – thus understanding what you can do with Kafka Streams and how is different from other solutions in the market it’s key in knowing what to choose for your particular use case.    

This workshop aims to cover the most important parts of Kafka streams: the concepts (streams, tables, handling state, interactive queries, .. ), the practicality (what can you do with it and what is the difference between the API and the KSQL server) and to explain what means building an application that uses Kafka Streams. We will be focusing on the stream processing part of Kafka, assuming that participants are already familiar with the basic concepts of Apache Kafka – the distributed messaging bus.


The workshop will be split in two parts: understanding the concepts of Kafka Streams and what can you get functional wise with Kafka Streams ( we will use KSQL for the exercises) and a second part that will focus on the details required to understand when building a streaming application. Both parts will contain some theory and some hands on exercises.

– What means stream processing in Apache Kafka and how the solution is different from other stream processing solutions out there (e.g. Spark, Storm,..);
Kafka Streams concepts: streams & tables ( KStreams, KTables, Global KTables), persistent/non persistent queries, state-full operations and how state is handled, …
– how to work with Kafka Streams: Streams DSL and KSQL Server
hands on exercises with KSQL to understand the functional capabilities
     – create a stream based on a CSV, JSON or AVRO topic
     – stream operations: Create as select, filter, tumbling windows, joins
     – create table from a stream aggregations
     – create table based on an existing topic
     – join tables with streams
– what you need to know when building an application with Streams DSL ( Java)
word count application debunked (hands on)  – how to implement word count using Streams DSLFor the word count application, we will use Java, thus if you would like to also test the code and learn the details – please bring your own Java environment (Java 8, Maven 3, Eclipse or IntelliJ IDEA).  


Requirements: we will work both with local installations and in the cloud, we will come back with more details on what is needed to to be installed in advance. We will work with Confluent Open Source Apache Kafka throughout the workshop and please have Google Chrome available for access to the workshop documentation available in Google docs. For developing the streaming app you will need a Java environment – Java 8, Maven 3, Eclipse or IntelliJ IDEA.


Please note: this workshop is not an introduction in Apache Kafka – you should already know some of the basics regarding Apache Kafka concepts and architecture.