Kafka Streams
Apache Kafka上のストリーム処理のためのJVMライブラリ。変換、集約、ストリームとテーブルの結合を、トポロジーDSLで記述する。パーティション単位の並列化でスケールする。
Apache FlinkやSpark Streamingとの違いは、アプリに組み込むライブラリであり、別個のクラスタが要らないことだ。トレードオフは、デプロイが簡単な代わりにFlinkほど強力ではないこと。KTableはキーごとの集約状態の「ビュー」で、ローカルではRocksDB、永続化にはコンパクションされたKafkaトピックが支えている。厳密に一度だけの処理(exactly-once)はトランザクショナルなプロデューサーで実現する。オープンソースだがConfluent主導で、Confluentスタック内の競合はksqlDB(Streamsの上のSQL)。「Flinkを立てずに素早くストリーム処理したい」ときの標準的な選択肢である。