This repository contains exercises and code examples for the Advanced Stream Processing with Flink workshop.
- flink-autoscaler — exercises for the Flink Kubernetes Operator Autoscaler.
- flink-common — shared classes used across multiple modules.
- flink-data-stream-api — exercises for the Flink DataStream API.
- flink-data-stream-api-solutions — reference solutions for the DataStream API exercises.
- flink-k8s-deployment — exercises for Kubernetes deployment.
- flink-optimisations — exercises and benchmarks focused on Flink performance optimisations.
- flink-state-processor — examples of the Flink State Processor API.
- k8s — Helm charts and resources for running Flink locally on Minikube.
- flink-data-stream-api
- flink-k8s-deployment (depends on
k8s/) - flink-optimisations
- flink-autoscaler (depends on
k8s/) - flink-state-processor
To avoid spending workshop time on setup issues, please verify beforehand that all the following prerequisites work.
In case of any issues, please contact grzegorz.kolakowski@xebia.com.
The project should build successfully:
mvn clean packageThe Flink Kubernetes Operator exercises require Minikube and several supporting services. Navigate to the k8s
directory and install them in the following order:
00-k8s01-flink-operator02-minio03-kafka04-akhq05-schema-registry10-prometheus- Running all the services alongside several Flink jobs can be resource-intensive, so consider uninstalling Prometheus after verification. We will install it again during workshops.
We recommend installing k9s or a similar tool to make it easier to observe Kubernetes resources.