最近、仕事で分散ストリーム処理に手を出していて、その基盤としてApache KafkaとKafka Streamsを使うことにしたので、動作概要とストリーム処理のイメージについてまとめておく。 kafkaそのものについては今更説明の必要は無いだろうと思う。 Kafka Streamsはkafkaを基盤にして分散ストリーム処理を簡単に書くためのDSLライブラリ。 https://kafka.apache.org/documentation/streams/ 延々流れてくるデータを変換して別のtopicに流したり、時間のウインドウを区切ってカウントした結果を流したり、みたいなのがサクっと書ける。 Apache Flinkなんかと似た様なことができる。 Kafka Streamsが良いのは以下の点。 ただのConsumer/Producerのラッパーなのでfat-jarファイル一つで簡単に動かせ