# Konsep Stream Processing

Kenali unbounded data, anatomi sistem stream processing dari source hingga sink, dan cara state diperbarui secara increment ketika event pesanan terus mengalir tanpa henti.

Buka →
# Batch vs Stream Processing

Ukur langsung agregasi yang sama dalam dua gaya — batch menunggu data lengkap lalu memproses sekali jalan, stream memperbarui hasil per event — dan baca perbedaan nyatanya pada hasil antara.

Buka →
# Event-Driven Architecture

Bangun arsitektur yang berkomunikasi lewat event: envelope standar dengan id unik, pola publish-subscribe di atas event bus, serta dedup untuk menoleransi redelivery.

Buka →
# Message Queues

Pelajari peran antrean pesan untuk melepas kopling producer dan consumer, dua pola distribusinya, dan bukti nyata backpressure lewat eksperimen bounded queue berbasis thread.

Buka →
# Apache Kafka

Kenalkan platform streaming terdistribusi paling umum: log replikasi di disk sebagai pengganti antrean memori, mode KRaft tanpa ZooKeeper sejak versi 4.x, dan klien Python producer-consumer.

Buka →
# Topics, Partitions, dan Offsets

Bedah tiga fondasi penyimpanan Kafka: topic sebagai kategori event, partition sebagai unit paralelisme sekaligus jaminan urutan, dan offset sebagai alamat pesan — lengkap dengan simulasi rebalance consumer group.

Buka →
# Producers dan Consumers

Bedah mekanika producer dan consumer Kafka: record batch, konfigurasi acks, idempotent producer, poll loop, serta simulasi retry yang memunculkan duplikat.

Buka →
# Consumer Groups

Bagi beban topic ke banyak consumer dengan consumer group, pahami protokol rebalance stop-the-world, lalu bandingkan keanggotaan dinamis dengan static membership lewat simulasi rolling restart.

Buka →
# Delivery Semantics

Uji at-most-once, at-least-once, dan exactly-once lewat simulasi crash di titik yang sama, lalu pahami transaksi Kafka untuk pipeline consume-process-produce yang bebas duplikat.

Buka →
# Event Time vs Processing Time

Bedakan jam kejadian di payload dari jam penerimaan di prosesor, buktikan lewat simulasi bahwa pesanan bisa tiba teracak, dan lihat mengapa windowing berbasis waktu proses merusak laporan.

Buka →
# Windowing

Pecah stream tak berujung menjadi potongan berhingga dengan tumbling, sliding, dan session window, lalu praktikkan ketiganya lewat windower Python murni di atas stream klik produk.

Buka →
# Watermarks dan Late Events

Pelajari cara watermark = event time maksimum - allowed lateness mengklasifikasikan late event, menutup window, dan membuang event terlambat lewat simulasi Python murni serta eksekusi nyata Spark.

Buka →
# Stream Joins

Gabungkan stream dengan tabel statis untuk enrichment dan stream dengan stream lewat interval join berbasis watermark, lengkap dengan dua eksekusi nyata PySpark dan aturan tiap tipe join.

Buka →
# Schema Registry

Kelola evolusi skema event lewat schema registry: skema Avro, mode kompatibilitas BACKWARD sampai FULL, skenario evolusi yang aman versus yang merusak, dan alur registrasi-serialisasi lintas producer dan consumer.

Buka →
# Stream Processing dengan Spark

Bangun pipeline streaming Spark yang tahan gagal: state store dan isi direktori checkpoint dari eksekusi nyata, enrichment hasil agregasi lewat stream-static join, pola foreachBatch, dan tiga syarat exactly-once end-to-end.

Buka →
# Monitoring Streaming Pipeline

Pantau kesehatan pipeline streaming: rumus consumer lag per partisi, metrik lastProgress Spark seperti inputRowsPerSecond dan durationMs, ambang SLO, serta strategi alert - semuanya lewat simulasi dan eksekusi nyata.

Buka →