Belajar Apache Flink (framework stream processing stateful untuk data real-time) dari dasar hingga production-grade: pre-requisites & setup environment, sejarah latar belakang & mengapa memilih Flink, konsep dasar & arsitektur, instalasi & menjalankan job Flink, DataStream API & core transformations, event time watermarks & windowing, state management & checkpointing, error handling & debugging stream jobs, source & sink integrations, Table API & SQL, complex event processing, job configuration & deployment, security authentication & authorization, data governance & observability, scaling & resource management, performance tuning, savepoints upgrades & migration, advanced streaming patterns, custom connectors & extensions, operational readiness & runbooks, real-time analytics & use cases, ecosystem & tooling, hingga future-proofing Flink skills dengan total 23 episode.
Sebelum menyentuh Apache Flink, kalian perlu menguasai konsep data processing batch versus stream, distributed systems, serta JVM dan bahasa JVM seperti Java atau Scala. Di episode ini kalian juga menyiapkan JDK, Docker, dan menginstall Apache Flink untuk menjalankan cluster lokal pertama.

Episode ini mengupas sejarah dan latar belakang lahirnya Apache Flink, evolusi stream processing dari batch ke real-time, serta perbandingannya dengan Spark Streaming, Kafka Streams, dan Beam. Kalian juga akan memahami use case ideal Flink: stateful stream processing, event-driven analytics, CEP, dan real-time pipelines.

Episode ini membedah konsep inti Flink: stream, DataStream API, Table API, dan SQL. Kalian akan memahami perbedaan event time, processing time, dan ingestion time, serta konsep stateful computation dengan state backend, checkpointing, dan savepoints. Terakhir, arsitektur eksekusi dijelaskan lewat JobManager, TaskManager, task slots, dan parallelism.

Episode ini membawa kalian mempraktikkan instalasi standalone Flink cluster dan menjalankan job pertama dengan perintah flink run. Kalian akan memahami struktur direktori Flink, konfigurasi di config.yaml, membaca log, serta mengenal lifecycle job dan web dashboard di port 8081.

Episode ini adalah episode paling fundamental untuk menulis pipeline: kalian membuat job Flink pertama dengan Java dan memakai transformasi dasar seperti map, flatMap, filter, keyBy, window, dan reduce. Kalian juga memahami stream partitioning, parallelism, dan operasi berbasis key.

Episode ini membedah konsep waktu paling penting di Flink: event time versus processing time. Kalian akan membangkitkan watermark untuk menangani data yang datang terlambat, mengenal window types tumbling, sliding, dan session, serta mengatur window trigger, allowed lateness, dan side output untuk late events.

Episode ini membedah cara Flink menyimpan state: keyed state dengan ValueState, ListState, MapState, dan AggregatingState, serta operator state. Kalian akan mengonfigurasi checkpointing dengan jaminan exactly-once, memilih state backend, dan memahami restart strategies untuk fault tolerance.

Episode ini mengajarkan cara menghadapi kegagalan di pipeline streaming: menangkap exception di operator dan source, memisahkan data rusak ke side output, memantau status job dan log, menggunakan savepoints untuk recovery, serta debugging dengan local cluster dan flink run -d.

Episode ini menghubungkan Flink ke dunia luar: Kafka, Kinesis, RabbitMQ, dan file sources sebagai sumber data, serta Kafka, database, object storage, dan Elasticsearch sebagai sink. Kalian juga memahami ekosistem connector dan format data JSON, Avro, Protobuf, dan CSV.

Episode ini memperkenalkan jalur deklaratif Flink: Table API dan SQL. Kalian akan memakai TableEnvironment dan catalog, menulis DDL untuk source dan sink, serta menerapkan windowing, joins, dan aggregations dengan Flink SQL. Termasuk temporal tables dan pola CDC untuk data yang berubah.
