Apache Kafka Series - Kafka Streams for Data Processing
4.7 (14 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
215 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Apache Kafka Series - Kafka Streams for Data Processing to your Wishlist.

Add to Wishlist

Apache Kafka Series - Kafka Streams for Data Processing

Learn the Kafka Streams API with Hands-On Examples, Learn Exactly Once, Build and Deploy Apps with Java 8
4.7 (14 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
215 students enrolled
Created by Stephane Maarek
Last updated 8/2017
English
Current price: $10 Original price: $120 Discount: 92% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 4.5 hours on-demand video
  • 1 Article
  • 2 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • You will write four Kafka Streams application in Java 8
  • You will learn about the High Level DSL of Kafka Streams
  • You will learn about Kafka Streams Exactly Once Semantics
  • You will learn how to build and package your application
  • You will learn how Kafka Streams applications are scaled
  • And so much more!
View Curriculum
Requirements
  • Good knowledge of Apache Kafka
  • A recent computer (Windows / Linux / Mac OS X) with 4GB of RAM
  • Good knowledge of Java 8 Programming Language
Description

The new volume in the Apache Kafka Series!

Learn the Kafka Streams data processing library, for Apache Kafka. Join hundreds of knowledge savvy students into learning one of the most promising data processing library on Apache Kafka.


Kafka Streams
is the easiest way to write your applications on top of Kafka:

> Easiest way to transform your data using the High Level DSL
> Exactly Once semantics support out of the box!
> Deploy and Scale your Kafka Streams application without a cluster!
> Perform Aggregations, joins, and any operations you may think of using only a few lines of code!
> Built on top of Kafka, for fault tolerance, scalability and resiliency


Instructor

Stephane Maarek is the instructor of this course. He is a Kafka Expert, and the author of the highly-rated Apache Kafka Series on Udemy, having taught already to 5000+ students and received 1000+ reviews.

He shares all his Kafka knowledge on the platform, taking the time to explain every concept and provide students with both theoretical and practical dimensions. You are in good hands!


Hands On & Theory Based Course

Note: This course is based on Java 8, and will include one example in Scala. Kafka Streams is Java based, and therefore is not suited for any other programming language. 

Each section can be either theoretical, or a practice section. 

> Through practice, you will be challenged by writing your own Kafka Streams application. The solutions will be thoroughly explained, and you will learn some tips on how to use Kafka Streams the best way.

> Through theory, you will learn about all the available API, the inner workings of the library, as well as some exciting concepts such as Exactly Once Semantics!

This course is the first and only available Kafka Streams course on the web. Get it now to become a Kafka expert!


Section outline:

  1. Kafka Streams - First Look: Let's get Kafka started and run your first Kafka Streams application, WordCount
  2. End-to-End Kafka Streams Application : Write the code for the WordCount, bring in the dependencies, build and package your application, and learn how to scale it. This is a complete end to end example
  3. KStream and KTable Simple Operations: Learn all the stateless operations available for the KStream and KTable API
  4. Practice Exercise - Favourite Colour: Practice your newly acquired skills by writing your own Kafka Streams application, Favourite Colour. It will be challenging! Includes a Scala version of the example
  5. KStream and KTable Advanced OperationsLearn all the stateful operations available for the KStream and KTable API
  6. Exactly Once Semantics - Theory: Learn what EOS (Exactly Once Semantics) is, how Kafka 0.11 enables it, and how to activate them in Kafka Streams
  7. Exactly Once - Practice Exercise - Bank Balance: Practice your newly acquired knowledge by writing your own Kafka Streams Exactly Once application, to compute a running Bank Balance for your customers


This Course Also Comes With:

✔ Lifetime Access to All Future Updates

✔ A responsive instructor in the Q&A Section

✔ Links to interesting articles, and lots of good code to base your next applications onto

✔ Udemy Certificate of Completion Ready for Download

✔ A 30 Day "No Questions Asked" Money Back Guarantee!


Learn The Hottest Kafka Data Processing Library Now!

Kafka is increasingly becoming a must-have skill, and this course will set you up for fast success using the Kafka Streams API. The job market will need people with your newly acquired skillset!

"Take This Course" risk free and learn Kafka Streams now!


Who is the target audience?

  • This course is for developers and devops who would like to learn how to write, package, deploy and run a Kafka Streams applications
  • This course is for architects who would like to understand how Kafka Streams work and its position in the Kafka-centered data pipeline and enterprise architecture
  • You will need some good understanding of Kafka before starting this course
Who is the target audience?
  • This course is for developers and devops who would like to learn how to write, package, deploy and run a Kafka Streams applications
  • This course is for architects who would like to understand how Kafka Streams work and its position in the Kafka-centered data pipeline and enterprise architecture
  • This course is intended for people who fully understand the basics of Kafka
  • Java 8 and Scala developers only
Students Who Viewed This Course Also Viewed
Curriculum For This Course
69 Lectures
04:27:05
+
Kafka Streams - First Look
6 Lectures 28:36

Learn what is Kafka Streams at a high level

Preview 04:46

Run through some pre-requisites for this course, understand who the target student is

Preview 04:11

Short bio of your instructor, Stephane Maarek!

About your Instructor: Stephane Maarek
00:55

Full end to end run of your first Kafka Streams application.

We will download Kafka, start our own cluster, and run producers, consumers, and our first Kafka Streams application

Preview 14:49

Short lecture comparing Kafka Streams to other streaming libraries

Preview 03:00

Download the code from github and this lecture

Code Download for this Class
00:55
+
End to End Kafka Streams Application - Word Count
15 Lectures 01:12:42

Description of the Word Count Kafka Streams application

Section Objective
01:45

Learn the Kafka Streams Core Concepts, Topologies, Sink, Sources, Processors, Streams

Kafka Streams Core Concepts
03:28

Setup Java 8, Maven, IntelliJ IDEA Community Editions so we can get started coding our first Kafka Streams application

Environment and IDE Setup: Java 8, Maven, IntelliJ IDEA
04:03

Setup a project starter so we can include the right kafka streams dependencies and get coding!

Starter Project Setup
07:56

Write our first Kafka Streams code. We will setup the Kafka Streams properties

Kafka Streams Application Properties
07:25

Learn about what is a Java 8 Lambda and how we will use them

Java 8 Lambda Functions - quick overview
02:55

Write our application topology using the newly acquired Java 8 Lambdas.

This is the first time we're dealing with the Kafka Streams API

Preview 14:07

Add some code so that our Kafka Streams application shuts down gracefully when we stop it

Kafka Streams Graceful Shutdown
02:03

Learning how to print the Kafka Streams topology

Printing the Kafka Streams Topology
01:33

Learn how to run our Kafka Streams application straight from IntelliJ

Running Application from IntelliJ IDEA
09:22

Learn how to run the IntelliJ debugger to do step through in our code

Debugging Application from IntelliJ IDEA
04:06

Learn about Kafka Streams internal topics (repartition and changelog topics)

Internal Topics for our Kafka Streams Application
03:47

Learn how to use Maven Assembly to package our Kafka Streams application as a fat jar

Packaging the application as Fat Jar & Running the Fat Jar
04:33

Learn how to scale a Kafka Streams application

Scaling our Application
03:59

Wrap up on all the awesome learning from this section

Section Wrap-Up
01:40
+
KStreams and KTables Simple Operations (Stateless)
16 Lectures 45:35

Learn the objective of this section, learning the stateless operations in Kafka Streams

Section Objectives
01:14

Learn about KStream and KTables 

KStream & KTables
03:39

Learn what Stateless and Stateful mean

Stateless vs Stateful Operations
01:41

Learn about the Map and MapValues Kafka Streams Operation

MapValues / Map
01:35

Learn about the Filter and FilterNot Kafka Streams Operation

Filter / FilterNot
01:22

Learn about the FlatMap and FlatMapValues Kafka Streams Operation

FlatMapValues / FlatMap
02:09

Learn about the Branch Kafka Streams Operation

Branch
02:45

Learn about the SelectKey Kafka Streams Operation

SelectKey
01:14

Learn how to read a KStream or KTable from Kafka

Reading from Kafka
02:16

Learn how to write your KStream or KTable back to Kafka

Writing to Kafka
01:52

Learn what operations mark streams for re-partition

Streams Marked for Re-Partition
02:52

Learn the fundamentals behind Log Compaction. This is a refresher!

Refresher on Log Compaction
17:44

Learn what is the KStream and KTable Duality

KStream and KTables Duality
02:20

Learn how to transform a KTable into a KStream in Kafka Streams

Transforming a KTable to a KStream
00:41

Learn how to transform a KStream into a KTable

Transforming a KStream to a KTable
01:24

Summary of all the learning on Stateless Operations

Section Summary
00:47
+
Practice Exercise - FavouriteColour
5 Lectures 26:38

Learn about the practice Kafka Streams exercise, favourite colour!

FavouriteColour - Practice Exercise Description & Guidance
03:20

Hints and guidance to conduct the programming of this Kafka Streams application by yourself

Stuck? Here are some Hints!
02:39

Java solution for the Kafka Streams application FavouriteColour

Java Solution
08:33

Running the Favourite Colour Kafka Streams application

Running the application
05:46

Learn how to write the same application using Scala

Scala Solution
06:20
+
KStreams and KTables Advanced Operations (Stateful)
9 Lectures 16:46

Section objective on KStream and KTable stateful operations

Section Objective
01:00

Learn about the groupBy operation

KTable groupBy
01:46

Learn the count operation

KGroupedStream / KGroupedTable Count
02:05

Learn the aggregate operation

KGroupedStream / KGroupedTable Aggregate
04:12

Learn the reduce operation

KGroupedStream / KGroupedTable Reduce
01:40

Learn the peek operation on KStream

KStream peek
02:08

Learn the Transform / Transform Values operation on KStream

KStream Transform / TransformValues
01:12

Learn how Kafka Connect can help you write your transformed data into a sink store / external system

What if I want to write to an external System?
01:40

Summary diagram from the Confluent documentation for operations

Summary Diagram
01:03
+
Exactly Once Semantics - Theory
4 Lectures 12:21

Learn what Exactly Once Semantics are

What's Exactly Once?
06:07

Learn how Kafka 0.11 solves the problem to have exactly once semantics

Exactly Once in Kafka 0.11
02:41

Understand the use cases of At Least Once vs Exactly Once

What's the problem with at least once anyway?
01:29

Learn how to easily achieve exactly once semantics in Kafka Streams!

How to do exactly once in Kafka Streams
02:04
+
Exactly Once Semantics - Practice Exercise - BankBalance
7 Lectures 34:56

Description for the BankBalance practice Kafka Streams exercise

BankBalance - Exercise Overview
02:14

Guidance for you to write your Kafka Producer in order to produce random bank transactions

Kafka Producer Guidance
01:41

Solution for the Kafka Producer that generates JSON random bank transactions

Kafka Producer Solution
14:17

Hints on how to write your Kafka Streams application

Kafka Streams Guidance & Hints
01:54

Solution to build the Bank Balance Kafka Streams application

Kafka Streams Solution
09:12

Let's run the Bank Balance producer and Kafka Streams application!

Running the BankBalance Application
04:42

Summary of our learnings to date

Section Summary
00:56
+
Joins - KStream to GlobalKTable example
5 Lectures 26:07

Learn about Joins in Kafka Streams. Learn when it is or isn't possible to join data

What are joins in Kafka Streams?
02:49

Understand what is co-partition of data, join constraints, and how global KTables solve the problem

Join Constraints and GlobalKTables
02:53

Learn about the different types of joins in Kafka Streams

The different types of joins: Inner Join, Left Join, Outer Join
02:45

Hands On Example to perform a join between a KStream and a KTable

Creating a join with UserEnrich Kafka Streams App
12:33

Running the example with an interactive producer that has different cases

Running the Kafka Streams Join application
05:07
+
Next Steps
2 Lectures 03:27

Congratulations! And what to study next

Congratulations and next steps
02:32

Special links to my other courses

Bonus Lecture: Special Coupons to my other courses
00:55
About the Instructor
Stephane Maarek
4.6 Average rating
1,103 Reviews
5,127 Students
6 Courses
Best Selling Instructor, Kafka Guru, AWS Solutions Architect

Stephane is a solutions architect, consultant and software developer that has a particular interest in all things related to big data and analytics. He's also a best seller instructor on Udemy for his courses in Apache Kafka, Apache NiFi and AWS Lambda!

He loves Apache Kafka. He regularly contributes to the Apache Kafka project and wrote a guest blog post featured on the Confluent website, the company behind Apache Kafka. 

He also is an AWS certified Solutions Architect, and has many years of experience with technologies such as Apache Kafka, Apache NiFi, Apache Spark, Hadoop, PostgreSQL, Tableau, Spotfire, Docker and Ansible amongst many others. 

His favourite programming languages are Scala and Python, and he plans on learning Go soon. 

During his spare time he enjoys cooking, practicing yoga, surfing, watching TV shows, and traveling to awesome destinations!