Batch processing s denní latencí nestačí. Klient chce vidět konverze, revenue a anomálie v reálném čase. Apache Flink s Kafka nám umožnil postavit streaming analytics pipeline.
Proč Flink (a ne Spark Streaming)¶
Spark Streaming je micro-batch — latence v sekundách. Flink je true streaming — event-by-event processing s milisekundovou latencí. Pro real-time dashboardy a alerting je rozdíl zásadní.
Flink nabízí exactly-once semantiku, event time processing (ne jen processing time), a sofistikované windowing.
Architektura pipeline¶
E-commerce events (page view, add to cart, purchase) → Kafka topics → Flink jobs → výstup do Elasticsearch (dashboardy) + Kafka (alerting) + S3 (archive).
Flink jobs¶
- Real-time aggregace: revenue per minute, conversion funnel, active users
- Anomaly detection: sliding window, porovnání s historickým průměrem
- Sessionization: grouping events do user sessions na základě activity gaps
- Enrichment: join s referenčními daty (product catalog, user segments)
Operační zkušenosti¶
Flink na Kubernetes běží v HA mode s checkpointingem do S3. Savepoints pro plánované upgrady — zastavte job, upgradujte, restartujte od savepointu. Žádná ztráta dat.
Monitoring: Flink poskytuje stovky metrik do Promethea. Klíčové: checkpoint duration, backpressure, throughput, consumer lag.
Streaming je nový batch¶
Real-time analytics není luxus — je to kompetitivní výhoda. Flink s Kafka poskytuje platformu pro stream processing, která zvládne od jednoduchých agregací po komplexní CEP.