What is Flink?

Apache Flink is a distributed system and computational engine for stateful big data streaming.

That was a mouthful.

In plain English, Flink is an library that allows you to process big data at scale, as it arrives, in almost real time.

Flink gives you a variety of APIs that allow you to do plain functional programming on streaming data, and low-level APIs to give you ultimate control. Plus connectors to everything popular, including Kafka, JDBC, Cassandra, Pulsar, S3 and all sorts of data processors and storage systems.

In this course, you'll learn how to be productive with Flink, and you'll grow as a data engineer.

How this Flink course works

This Flink course is hands-on. We learn everything from first principles, not assuming anything in advance.

We write a lot of code in this course: 2000 lines, at least. Through the dozens of examples and exercises, you'll walk through everything you need to know to be productive with Apache Flink. For non-code explanations, intuitive diagrams and support slides accompany you in your journey with Flink.

Flink is notoriously hard to learn, because you need many difficult concepts before you can write your first application. We designed this course to give you a smooth learning curve by tearing Flink apart and sequencing the topics carefully. Nothing too steep or too boring.

In this Flink course, we combine theory and practice so that you internalize timeless principles of streaming big data, so that you'll still apply them to other streaming libraries as well.

This Flink course is for Scala developers

Flink has APIs for Java and Scala, and they look similar. In this course, we're going to focus on the Scala API, so you're going to need

  • some solid CS fundamentals
  • familiarity with the Scala language
  • (as a bonus) if you have some data engineering experience, that will help

Even if you're experienced, learning Flink on your own can take months (certainly did for us) and it can be frustrating.

This course compresses your learning time to 8 hours of pure fun.

Skills you'll get after the course

First of all, this course will give you everything you need to be productive with Flink:

  • You'll deeply understand the Flink streaming engine and how it works
  • You'll use functional programming on data streams
  • You'll process any kind of data in real time, at scale
  • You'll master complex transformations such as window functions
  • You'll be able to run stateful computations, which is the main strength of Flink
  • You'll know how to connect Flink to the most popular message buses, data streaming and data storage systems
  • You'll be able to design your own connectors
  • You'll be able to deploy Flink applications to a cluster
  • You'll be able to troubleshoot and find relevant information in the Flink UI

After this course, you'll be able to process data in any way you need using Flink.

But most importantly, you'll develop timeless skills that you'll carry with you for your entire career, regardless of which data streaming tool you'll end up using:

  • You'll deeply understand the practical benefits of streaming data in general
  • You'll be able to work with event time and processing time
  • You'll internalize the implications and tradeoffs of choosing latency vs throughput
  • You'll understand the need for data consistency and persistence

You're in good hands in this course

Meet Daniel

I'm a software engineer and the founder of Rock the JVM. I started the Rock the JVM project out of love for Scala and the technologies it powers - they are all amazing tools and I want to share as much of my experience with them as I can.

As of Feb 2022, I've taught Java, Scala and related tech (e.g. Akka, Cats, Spark) to 51000+ students at various levels and I've held live trainings for some of the best companies in the industry, including Adobe, Microsoft and Apple. I've also taught university students who now work at Google and Facebook (among others), I've held Hour of Code for 7-year-olds and I've taught more than 25000 kids to code.

I'll guide you every step of the way, and our private community at Rock the JVM is full of passionate people just like you.

In collaboration with Dmytro

Dmytro Mykhailov is a Flink expert and trainer. We worked together on the initial structure of the course, as well as a large chunk of examples and exercises. This course would not have been possible without him.

For most of his career, Dmytro has been working as a Full Stack Developer and Solution Architect. His responsibilities include collecting and analyzing requirements, software design, implementation kick-start, team development, and leading the team to the successful delivery of the software.

Dmytro has conducted mentoring, coaching, and training sessions. He developed several technical training programs: general software engineering excellence, software design, and practical TDD training courses. He has also conducted engineering workshops and bootcamps.

Dmytro is also a former Rock the JVM student.

Choose a Pricing Option

Risk-free: 100% money back guarantee.

If you're not happy with this course, I want you to have your money back. If that happens, email me at [email protected] with a copy of your welcome email and I will refund you the course.

Less than 0.1% of students refunded a course on the entire site, and every payment was returned in less than 72 hours.


1. How long is the Flink course? Will I have time for it?

The course is a whole 8 hours in length, and we write 2000 lines of code from scratch. I recommend going through the course in sessions of at least 30 minutes each.

2. What does a typical lesson contain?

The course is hands-on. We'll mostly write code, and I'll guide you all along. We also have some theoretical sections, but those tend to be short and visual, then we get back straight to the code.

3. Can I expense this course at my company?

Of course! After you enrol, you'll automatically get an invoice which you can use to reimburse this course with your employer.

4. Is Flink hard to learn?

Flink is notorious for its steep learning curve. Even for the smallest application, you'll need a lot of concepts at the same time. This Flink course deconstructs Flink and isolates its parts so that you can learn step by step.

5. What if I'm not happy with the course?

If you're not 100% happy with the course, I want you to have your money back. It's a risk-free investment.

6. Daniel, I can't afford the course. What do I do?

Check out the membership. It gives you access to everything on the site at an affordable price, and you'll be done with the course no problem.

7. I'm just getting started with Scala. Can I take this course?

Short answer: probably not. Longer answer: we have some Scala starter code at the beginning of the course, but that won't replace the kind of experience we need for this course. We aren't using any Scala rocket science, but you need to be comfortable with it. I recommend you check out the Scala essentials and advanced courses first before coming back here.

8. I hate ___ and wish to email you about it

Plz no :D