A stream processing application built with Kafka Streams looks like this: Despite being a humble library, Kafka Streams directly addresses a lot of the hard problems in stream processing: Event-at-a-time processing (not microbatch) with millisecond latency Stateful processing including distributed joins and aggregations A convenient DSL Windowing with out-of-order data using a DataFlow-like model