🐿️ Apache Flink
Stream processing where the time that matters is when the event happened, not when it arrived — event time and watermarks, windows, keyed state, and checkpointing.
No lessons published yet — this is the roadmap, so you can see exactly what the course will cover before it lands.
Before you start: ETL & Data Pipelines — Series 3 · 42. That episode defines bounded against unbounded data, event time against processing time, and what a watermark is for. This track is the implementation of all three, and it does not re-teach them.
Before you start: Apache Kafka — Series 1. Almost every Flink job reads from and writes to Kafka. You need topics, partitions and offsets before the source and sink connectors make sense.
Short on time? The 12 episodes marked core are the shortest path to being productive at work. Start there and pick up the rest whenever a job asks for them.
Series 1 · Time and State
watermarks, windows, and what the job remembers
- 01
A Job That Never Finishes — Sources, Operators, Sinks and Parallelism
coreadvancedcoming soon - 02
Watermarks — Deciding an Answer Is Final, and the Source That Never Advances
coreadvancedcoming soon - 03
Windows — Tumbling, Sliding and Session, in Event Time and Processing Time
coreadvancedcoming soon - 04
Keyed State — What the Job Remembers, and the Key Space That Grows Forever
coreadvancedcoming soon - 05
Checkpoints and Savepoints — Restarting Without Losing What the Job Knew
coreadvancedcoming soon
Series 2 · Writing Jobs
Flink SQL first, then the DataStream API
- 01
Flink SQL — A Stream as a Changelog of a Table, With WATERMARK in the DDL
coreadvancedcoming soon - 02
Streaming Joins — Interval and Temporal, and the Regular Join That Never Forgets
coreadvancedcoming soon - 03
The DataStream API — ProcessFunction and Timers, for What SQL Cannot Say
advancedcoming soon - 04
Connectors — Kafka, JDBC and CDC, and the Guarantee Each One Actually Gives
coreadvancedcoming soon - 05
Backpressure — Reading the UI to Find Which Operator Is Actually Slow
advancedcoming soon - 06
Project — A Windowed Aggregate That Survives a Restart and Late Data
coreadvanced#projectcoming soon
Series 3 · In Production
evolving a job that is always running
- 01
Upgrading a Running Job — Operator UIDs, and the Restore That Fails Without Them
coreadvancedcoming soon - 02
Testing — Driving Event Time by Hand Instead of Waiting for a Clock
advancedcoming soon - 03
When Flink Is Worth It — the Bill, and the Batch Job That Would Have Done
coreadvancedcoming soon - 04
Project — Kafka In, Windowed Result Out, Upgraded Without Losing State
coreadvanced#projectcoming soon
Not here, on purpose
- Deciding whether you need streaming at all — covered in ETL & Data Pipelines, Series 3 · 42 — and the honest answer there is usually no
- Event time and watermarks as concepts — covered in ETL & Data Pipelines, Series 3 · 42. Here they are configured and debugged rather than introduced
- Running a Flink cluster — JobManager sizing, HA, Kubernetes operators — covered in Data Ops for the operational discipline. Here you learn what a JOB AUTHOR must know
- The transport itself — covered in Apache Kafka