Apache Flink with Scala 3 (Udemy.com)
Master everything you need to write production-level Flink applications in Scala 3 through hands-on exercises!
Created by: Maggie Cao
Last updated March 2024
What you will learn
- Learn Flink's basic and advanced concepts and architecture each followed by hands-on exercises in Scala 3
- Learn how Flink handles stream processing, distributed and stateful computation
- Learn to handle event time processing using Flink's watermarks mechanism and window operation
- Learn to integrate Flink version 1.17 with Kafka and Kubernetes using Scala 3
- Learn to write stateful applications using Flink's key concepts including checkpoint mechanism, map state, list state and value state
- Learn Flink's deployment modes and deploy your own Flink application on Kubernetes
How it compares
Against the other 518 rated Udemy courses in Software Development on CourseDuck:
- Rating4.4 out of 5higher than 28% of them
- Reviews34#513 of 519 by number of reviews
- Length2.7 hoursshorter than 82% of them
- Last updatedMarch 2024earlier than 72% of them
Course Description
As the latest Flink course in Scala 3 released in 2024, it covers Flink's basic and advanced concepts each followed by hands-on exercises. This course cuts through all the complexities of integrating the very recent Flink version 1.17 with Scala 3 and Kubernetes. Starting with version 1.15 of Flink, Scala support was removed to make it easier to integrate with multiple versions of Scala, including Scala 3. This course includes step by step video demonstrations on how to resolve the problem of classpath collision when deploying Flink applications in Scala 3 on Kubernetes.
Concretely, here's what you will learn to either ace your next Flink interview or be ready to write your production level Flink application:
1. Flink and Streaming Fundamentals
You'll understand how Flink handles stream processing, distributed and stateful computation; You'll learn Flink's architecture including Flink cluster's components; You'll know how to deploy and manage the lifecycle of a Flink application.
2. Flink Data Pipeline
You'll understand different levels of abstraction for developing streaming applications; You'll be able to process big data in real time any way you want to by mastering fundamental Flink concepts including: data ingestion, efficient data transformation, controlling your applications with lower level APIs, producing output streams to data sinks.
3. Integration with Apache Kafka
You'll learn configuration of Kafka Source and Kafka Sink; You'll master how to set up Kafka dependencies in built.sbt and how to integrate Kafka with Flink as a data source or data sink.
4. Time Handling, Watermarks and Windows
You'll be able to handle event time processing using Flink's watermarks mechanism and window operation including tumbling window, sliding window and global window.
5. Fault Tolerant
You'll be able to write stateful applications using Flink's key concepts including checkpoint mechanism, map state, list state and value state.
6. Integration with Kubernetes
You'll learn Flink's deployment modes and deploy your own Flink application on Kubernetes by following along the video demonstration of every deployment step and deployment configurations.
What you'll get from this course:
You will get 30+ total Flink video lessons with slides and illustrative diagrams plus access to Github Repo with all the code in the course;
You can practice by writing more than 20 Flink applications for common use cases and following along the hands-on video lessons;
You will quickly master the configurations of all the dependencies and steps to deploy Flink 1.17 applications on Kubernetes by following the video demonstration;
You will learn transferrable principles of big data streaming and distributed systems that you can apply on other streaming systems.
Instructor Details
- 4.4 Rating
34 Reviews
Maggie Cao
Maggie Cao is passionate about functional programming and all things related to Big Data. She is an AWS Certified Solutions Architect, AWS Certified Machine Learning Specialist and Databricks Certified Developer for Apache Spark. She’s passionate about sharing her knowledge of the latest technology in big data analytics and her expertise in Apache Flink has led her to be invited as a guest lecturer at Amazon Web Services to teach Flink in Scala 3 to Streaming Data Engineering teams.
With over 7 years of experience of working with tech companies as a data analyst, full-stack developer and trainer, she has led multiple tech company IPO projects and gained great exposure to the challenges of high volume and complex data.
Maggie is a firm believer in teaching through hands-on exercises, which will get her students ready to write their own production level applications.
More Software Development courses
MATLAB Programming Simulink: Beginner to Pro with ChatGPT (2026)
5.0 (930 Reviews)
Provider: Udemy
Time: 9.6h
$10.99
Build Web Apps with Nuxt.js 3: Master TypeScript & API [New] (2026)
4.9 (635 Reviews)
Provider: Udemy
Time: 6.7h
$19.99
Terraform 101: The Ultimate Hands-On Guide [Azure Edition] (2025)
4.8 (1,975 Reviews)
Provider: Udemy
Time: 11.9h
$94.99
Reviews
By Carlos Kassab on 12/12/2025
If you want to save time reading Flink documentation and going through a Flink Scala 3 application by yourself. This course is fine. You may check this example on github: github.com/sjwiesman/flink-scala-3
By Colin on 11/20/2025
The setup of the env is not working out of the box. Some errors while I enrolled this course to get a working config for Scala 3 x Flink. But Claude code told me to add fork := true javaOptions ++= Seq( "--add-opens=java.base/java.lang=ALL-UNNAMED", "--add-opens=java.base/java.util=ALL-UNNAMED" ) to build.env that worked
By Denis Iablochkin on 10/10/2025
You will obviously not "master" anything in 2 hours but its OK, didn't expected it. It's an alright Flink starter course with lot of coding which is great. However, this course has some flaws anyway. We almost never stop on any of the exercise results to actually see what they did to cross-reference it with initial description of the task. For example, when we do the checkpoints we just look that folders were created. But the folders itself are empty so it is not clear if thats expected or not. Some of the examples are not very intuitive, a lot of places where we output milliseconds instead of time and that doesn't really show anything (use Instant.ofEpochMilli() instead!). You need to throw "--add-opens=java.base/java.util=ALL-UNNAMED" here and there, lot of methods are deprecated at the moment (October of 2025), it is alright to me since i have similar Spark experience, but perhaps course could have some mentions about that. And the microphone could use less of compression or more of noise filtering, not sure, but sometimes it "eats" the voice.
By Artem on 8/27/2025
The course content is excellent, but the speech is too fast. At few points, it turns into a constant stream of words, almost like noise. Clear separation between sentences with natural pauses would make a big difference. Slowing the playback to 0.75x helps a bit, but then it sounds like the presenter is having a stroke. Overall, I feel this course was a waste of time, and I probably need to take another one. Online examples are useful.
By Junji on 8/17/2025
非常不错的课程。我的flink就是靠着这个课程来入门的,课程总共3小时多一点,很快能够追完。样例demo也很不错。就是需要一点scala基础。总体比较推荐。
By Antonio Rodríguez Baena on 5/3/2025
Very interesting, straight to the point
By Vamsi on 6/24/2024
clear explaination
By Manuel Zegarra on 5/8/2024
The course is excellent, the examples and concepts are very clear.
By Ryan on 4/5/2024
Very thorough and great hands-on examples. The deployment on Kubernetes lesson is especially helpful.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 88 / 100



![Build Web Apps with Nuxt.js 3: Master TypeScript & API [New]](/programming/software-development/images/6457785_5adc_4.jpg?v=1789443959)

![Terraform 101: The Ultimate Hands-On Guide [Azure Edition]](/programming/software-development/images/6208847_f60a_7.jpg?v=1791193600)
