You were tasked with building a real-time platform, but traditional tools couldn’t handle the massive data streams, leading to lagging performance and frustrated users. Deadlines were looming, and the team needed a breakthrough.
And when you learned about Apache Flink.
We will explore how the DataStream API allowed efficient real-time data processing and how the Table API and SQL features simplified complex queries with familiar syntax. Testing became more straightforward, and managing the application state was no longer a headache.
You’ll learn:
-
Harnessing the DataStream API: Process unbounded data streams efficiently to make your applications more responsive.
-
Unlocking Table API and SQL: Use SQL queries within Flink to simplify data processing tasks without learning new languages.
-
Effective Testing Strategies: Implement best practices for testing Flink applications to ensure your code is robust and reliable.
-
Stateful Stream Processing: Manage application state effectively for complex event processing and real-time analytics.
By the end of this talk, you will be equipped to tackle real-time data challenges. Whether you’re building analytics dashboards, event-driven systems, or handling data streams, Apache Flink can be the game-changer you’ve been searching for.
-
Basic Programming Knowledge – Familiarity with Java or Scala (ugh) (Flink supports both but not for long).
-
Understanding of Stream Processing Concepts – Awareness of real-time data pipelines, event-driven architectures, and streaming frameworks.
-
SQL Proficiency – Basic understanding of SQL for working with Flink’s Table API.
-
Linux/macOS Command Line Experience – Ability to execute terminal commands and navigate a Unix-like environment.
-
Why? Flink and Kafka components will be containerized.
-
Download & Install: Docker Website
-
macOS Alternative: OrbStack (recommended for better performance)
-
Why? Required for Kafka-based streaming exercises.
-
Sign Up & Get API Keys: Confluent Cloud
-
Why? Apache Flink will run on Java 21.
-
Download Java 21 via SDKMAN: SDKMAN
-
Verify Installation: Run
java -version
in the terminal.
-
Why? For cloning repositories and working with project files.
-
Download Git: Git Website
-
Why? Recommended for Flink development.
-
Download IntelliJ IDEA (Recommended): IntelliJ IDEA
-
Download VS Code (Alternative): VS Code
-
Confluent Extension for VSCode: https://marketplace.visualstudio.com/items?itemName=confluentinc.confluent-vscode[link]
-
Why? The workshop will use the Gradle Wrapper, eliminating the need for manual installation.
-
Gradle Docs: Gradle Wrapper Documentation
-
Why? Simplifies the installation of all required dependencies.
-
How? This project includes a
Brewfile
for managing dependencies. -
Setup: Run
make setup-mac
to install all required dependencies using Homebrew. -
Update: Run
make update-brew-deps
to update dependencies.
-
Stable Internet Connection – Required for downloading dependencies and connecting to Confluent Cloud.
-
8GB+ RAM Recommended – Running Flink, and other services may require significant memory.
-
Sufficient Disk Space (At Least 10GB Free) – For Docker images, logs, and data processing.
-
Why? Useful for automated infrastructure setup in Confluent Cloud.
-
Download Terraform: Terraform Website
-
Why? If Terraform scripts are used, a fundamental knowledge of how it works would be beneficial.
-
Terraform Getting Started Guide: Terraform Tutorials
-
Why? The workshop will use the commands in the Confluent CLI to get useful information about new Confluent infrastructure.
-
Download and Install: Confluent CLI Installation Instructions
-
Why? The workshop will use jq to build configuration files used to demonstrate the Confluent Flink Table API.
-
Download and Install: jq Download Instructions
-
Sign up for Confluent Cloud & Configure API Keys – Ensure access credentials are available before the workshop.
-
Clone the Workshop Repository – The repo will include pre-built examples and configuration files (GitHub link will be shared before the workshop).
-
Set Up Environment Variables – Configure
JAVA_HOME
and authentication variables for Confluent Cloud. -
Run a Simple Docker-Based Flink Job – Validate that the environment is correctly configured.