:rocket: The journey concludes! I'm excited to sha...
# feed
j
๐Ÿš€ The journey concludes! I'm excited to share the final installment, Part 5 of my "๐†๐ž๐ญ๐ญ๐ข๐ง๐  ๐’๐ญ๐š๐ซ๐ญ๐ž๐ ๐ฐ๐ข๐ญ๐ก ๐‘๐ž๐š๐ฅ-๐“๐ข๐ฆ๐ž ๐’๐ญ๐ซ๐ž๐š๐ฆ๐ข๐ง๐  ๐ข๐ง ๐Š๐จ๐ญ๐ฅ๐ข๐ง" series: "๐…๐ฅ๐ข๐ง๐ค ๐“๐š๐›๐ฅ๐ž ๐€๐๐ˆ - ๐ƒ๐ž๐œ๐ฅ๐š๐ซ๐š๐ญ๐ข๐ฏ๐ž ๐€๐ง๐š๐ฅ๐ฒ๐ญ๐ข๐œ๐ฌ ๐Ÿ๐จ๐ซ ๐’๐ฎ๐ฉ๐ฉ๐ฅ๐ข๐ž๐ซ ๐’๐ญ๐š๐ญ๐ฌ ๐ข๐ง ๐‘๐ž๐š๐ฅ ๐“๐ข๐ฆ๐ž"! After mastering the fine-grained control of the DataStream API, we now shift to a higher level of abstraction with the ๐—™๐—น๐—ถ๐—ป๐—ธ ๐—ง๐—ฎ๐—ฏ๐—น๐—ฒ ๐—”๐—ฃ๐—œ. This is where stream processing meets the simplicity and power of SQL! We'll solve the same supplier statistics problem but with a concise, declarative approach. This final post covers: โ€ข Defining a ๐“๐š๐›๐ฅ๐ž over a streaming ๐ƒ๐š๐ญ๐š๐’๐ญ๐ซ๐ž๐š๐ฆ to run queries. โ€ข Writing declarative, ๐’๐๐‹-๐ฅ๐ข๐ค๐ž ๐ช๐ฎ๐ž๐ซ๐ข๐ž๐ฌ for windowed aggregations. โ€ข Seamlessly ๐›๐ซ๐ข๐๐ ๐ข๐ง๐  ๐›๐ž๐ญ๐ฐ๐ž๐ž๐ง ๐ญ๐ก๐ž ๐“๐š๐›๐ฅ๐ž ๐š๐ง๐ ๐ƒ๐š๐ญ๐š๐’๐ญ๐ซ๐ž๐š๐ฆ ๐€๐๐ˆ๐ฌ to handle complex logic like late-data routing. โ€ข Using Flink's built-in Kafka connector with the avro-confluent format for declarative sinking. โ€ข Comparing the declarative approach with the imperative DataStream API to achieve the same business goal. โ€ข Demonstrating the practical setup using ๐…๐š๐œ๐ญ๐จ๐ซ ๐‡๐จ๐ฎ๐ฌ๐ž ๐‹๐จ๐œ๐š๐ฅ and ๐Š๐ฉ๐จ๐ฐ for a seamless Kafka development experience. This is the final post of the series, bringing our journey from Kafka clients to advanced Flink applications full circle. It's perfect for anyone who wants to perform powerful real-time analytics without getting lost in low-level details. Read the article: https://jaehyeon.me/blog/2025-06-17-kotlin-getting-started-flink-table/ Thank you for following along on this journey! I hope this series has been a valuable resource for building real-time apps with Kotlin. ๐Ÿ”— ๐’๐ž๐ž ๐ญ๐ก๐ž ๐Ÿ๐ฎ๐ฅ๐ฅ ๐ฌ๐ž๐ซ๐ข๐ž๐ฌ ๐ก๐ž๐ซ๐ž: 1. Kafka Clients with JSON 2. Kafka Clients with Avro 3. Kafka Streams for Supplier Stats 4. Flink DataStream API for Supplier Stats
K 2