Skip to content
Kafka Is Fun

BeginnerCore Concepts

What is Kafka Streams?

Reference answer

Kafka Streams is a client library, not a separate cluster: it runs inside your own application (it can be embedded in any Java application, and Kafka's clients are available for Java and Scala) and reads input from and writes output to Kafka topics. It offers a high-level Streams DSL (mapping, filtering, joins, aggregations) and a lower-level Processor API for custom processors and direct work with state stores. Stateful operations such as aggregations and joins use local state stores; the persistent key-value store uses RocksDB, and every store is backed by a replicated, log-compacted changelog topic in Kafka so that its content can be restored after a failure. It supports windowing, with a grace period for out-of-order records. Processing is at_least_once by default; exactly-once is enabled by setting processing.guarantee to exactly_once_v2. Parallelism is bounded by the number of tasks, which is based on the input topic partitions.

Expected key concepts: client library, Java, DSL, Processor API, state store, RocksDB, changelog topic, windowing, processing.guarantee, exactly_once_v2, tasks

How did that feel?

Your own verdict, not the score. It shows up next to this question in the list, so you can come back to the shaky ones.