Ververica
Academy
Apache Flink® Bootcamp ONLINE!
Join our expert-led Bootcamp Program to master the fundamentals of Apache Flink in a hands-on online learning environment.
Next Course: 8 through 12 December 2025
Ververica Academy Apache Flink Bootcamp Program
The Ververica Academy Apache Flink Bootcamp Program is an intensive training initiative that transforms Apache Flink users into proficient data processing professionals. By translating complex Flink concepts into practical exercises rooted in real-world scenarios, we empower participants to tackle their toughest data challenges. While Flink and Java experience are highly recommended, participants without this background will be brought up to speed through review exercises and practical code samples. Participants will gain a deep understanding of Flink and learn to optimize the scalability and efficiency of their cloud-based solutions. This program is not just about learning; it’s about mastering Apache Flink and leading the future of data processing.
Course Modules and Learning Objectives
Module 1: Apache Flink Architecture and Runtime
- - Components of a Flink Cluster
- - Job Submission Process
- - Supported Deployment Modes
- - DataStream API
- - Resource Management and Scheduling
Module 2: Implementing Basic Transformations with the DataStream API
- - How to use filter, map, and flatMap functions
- - Rich functions that provide access to additional methods
- - RichCo functions for processing connected streams
Module 3: Event Time & Watermarks
- - Time and Ordering (Out-of-orderness)
- - Grouping Events by Time Window
- - Watermarking
- - Handling Late Events
- - Computing aggregations on streams
- - Keyed and non-keyed windows
- - Tumbling, sliding, and sessions windows
- - Window functions
Module 4: State Management and Serialization
- - How Flink Handles State
- - Different Types of State Backends: HashMap State Backend and RocksDB State Backend
- - What is serialization and why does it matter?
Module 5: Failure Handling and Exactly Once Processing
- - Handling failures and restarts
- - Failover Strategies
- - High availability (JobManager)
- - Checkpoints and barrier alignment
- - Exactly-once end-to-end
Module 6: Enrichment and Skew
- - What is enrichment?
- - Typical solutions for enrichment
- - Streaming joins
- - Streamhouse joins
- - Skew and its impact on performance
Module 7: Flink SQL
- - What is Flink SQL?
- - Semantics of Streaming SQL
- - Interval and temporal joins in Flink SQL
- - Using Changelog Streams and Dynamic Tables
Module 8: Table API & DataStream Integration
- - Table API
- - DataStream Integration
Module 9: Workflow Design
- - Separating our job and workflow
- - Workflow components
- - Segmenting workflows
- - Bridging workflows
Module 1: Apache Flink Architecture and Runtime
- Components of a Flink Cluster
- Job Submission Process
- Supported Deployment Modes
- DataStream API
- Resource Management and Scheduling
Module 2: Implementing Basic Transformations with the DataStream API
- How to use filter, map, and flatMap functions
- Rich functions that provide access to additional methods
- RichCo functions for processing connected streams
Module 3: Event Time & Watermarks
- Time and Ordering (Out-of-orderness)
- Grouping Events by Time Window
- Watermarking
- Handling Late Events
- Computing aggregations on streams
- Keyed and non-keyed windows
- Tumbling, sliding, and sessions windows
- Window functions
Module 4: State Management and Serialization
- How Flink Handles State
- Different Types of State Backends: HashMap State Backend and RocksDB State Backend
- What is serialization and why does it matter?
Module 5: Failure Handling and Exactly Once Processing
- Handling failures and restarts
- Failover Strategies
- High availability (JobManager)
- Checkpoints and barrier alignment
- Exactly-once end-to-end
Module 6: Enrichment and Skew
- What is enrichment?
- Typical solutions for enrichment
- Streaming joins
- Streamhouse joins
- Skew and its impact on performance
Module 7: Flink SQL
- What is Flink SQL?
- Semantics of Streaming SQL
- Interval and temporal joins in Flink SQL
- Using Changelog Streams and Dynamic Tables
Module 8: Table API & DataStream Integration
- Table API
- DataStream Integration
Module 9: Workflow Design
- Separating our job and workflow
- Workflow components
- Segmenting workflows
- Bridging workflows
Each of the 9 modules contains a 5-question quiz. There are 6 graded coding challenges throughout the course.
Target Audience
Apache Flink users with 1-2 years of experience who are comfortable with core concepts and want to become proficient in advanced functionalities.
Prerequisites
Programming Skills
- 1-2 years of experience with Java or similar programming language (all coursework is conducted in Java)
- Basic SQL knowledge
Apache Flink Experience
- Hands-on experience with Flink APIs
- Ability to deploy and manage Flink jobs
- Understanding of event time and state concepts
System Knowledge
- Stream processing fundamentals
- Distributed systems experience
- Basic cloud platform understanding
- ETL and data pipeline concepts
Ambitious students without previous Flink knowledge will find the course includes just enough Flink background, review exercises, and practical examples to come up to speed quickly and ultimately master difficult Flink concepts.
How This Course Works
Course Format
This is a hybrid online self-paced course with a defined start and end date. Work through the materials at your own pace while benefiting from daily support and a cohort of fellow learners.
Course Access
To access your course, if you don't already have a Ververica Academy Account, you will need to create one first.
The full course will be available starting the first day of the course at 10:00 CET. Once logged in, head to your Dashboard (top navigation bar) and click "Start" on the course. The course is linear, so you'll complete each module before moving to the next.
Be sure to check out the Welcome Module—it has all the technical setup details and office hours information you'll need.
Daily Office Hours
Join live office hours every day during the course for 60 minutes to ask questions, troubleshoot issues, and get guidance from your trainer. Office hours are held daily at:
- 08:00 PST
- 11:00 EST
- 16:00 GMT
- 17:00 CET
- 21:30 IST
Course Setup
Before you start the course, you will need to set up and to test your environment. Monday's office hours are specifically dedicated to pre-course environment troubleshooting so you can resolve any technical issues and start learning right away.
NOTE: Monday’s office hours will also be held at:
- 16:00 PST
- 19:00 EST
All office hours will be recorded and available in the Discord Channel.
Discord Community
You'll have access to a dedicated Discord channel where you can connect with fellow learners, ask questions between office hours, and engage with the trainer. This is your space for peer learning and ongoing support throughout the course.
Upcoming Bootcamps
