Check out the docs at Apache Kafka web site: http://kafka.apache.org/documentation/streams/
Sub-pages:
- Using Kafka Streams:
- Development:
- Internals:
Find more links about Kafka Streams at Kafka Ecosystem page.
Kafka Streams related KIPs:
Below is a list of KIPs that are not release yet. Go to Kafka Streams KIP Overview for KIPs by release (including discarded KIPs).
Under discussion
- KIP-406: GlobalStreamThread should honor custom reset policy
- KIP-424: Allow suppression of intermediate events based on wall clock time
- KIP-439: Cleanup built-in Store interfaces
- KIP-448: Add State Stores Unit Test Support to Kafka Streams Test Utils
- KIP-508: Make Suppression State Queriable
- KIP-513: Distinguish between Key and Value serdes in scala wrapper library for kafka streams
- KIP-540: Implement per key stream time tracking
- KIP-560: Auto infer external topic partitions in stream reset tool
- KIP-591: Add Kafka Streams config to set default store type
- KIP-598: Augment TopologyDescription with store and source / sink serde information
- KIP-622: Add currentSystemTimeMs and currentStreamTimeMs to ProcessorContext
- KIP-645: Replace Windows with a proper interface
- KIP-647: Add ability to handle late messages in streams-aggregation
- KIP-655: Windowed Distinct Operation for Kafka Streams API
- KIP-659: Improve TimeWindowedDeserializer and TimeWindowedSerde to handle window size
- KIP-666: Add Instant-based methods to ReadOnlySessionStore
- KIP-667: Remove deprecated methods from ReadOnlyWindowStore (target 3.0 release; currently blocked)
- KIP-669: Preserve Source Partition in Kafka Streams from context
- KIP-674: Metric Reporter to Aggregate Metrics in Kafka Streams
- KIP-675: Convert KTable to a KStream using the previous value
- KIP-677: Migrating Topology methods to the Builder pattern
- KIP-695: Further Improve Kafka Streams Timestamp Synchronization
- KIP-696: Update Streams FSM to clarify ERROR state meaning
Adopted
- inactive, not (fully) implemented (feel free to pick up):
- KIP-149: Enabling key access in ValueTransformer, ValueMapper, and ValueJoiner (partially implemented in v1.1)
- KIP-258: Allow to Store Record Timestamps in RocksDB (partially implemented in v2.3)
- KIP-300: Add Windowed KTable API in StreamsBuilder (accepted but postponed because current code base does not allow to implement it as proposed)
- KIP-328: Ability to suppress updates for KTables (partially implemented in v2.1)
- KIP-471: Expose RocksDB Metrics in Kafka Streams (partially implemented in v2.4; completion deferred to next major release)
- WIP (open PR / in review):
- KIP-216: IQ should throw different exceptions for different errors
- KIP-399: Extend ProductionExceptionHandler to cover serialization exceptions
- KIP-418: A method-chaining way to branch KStream
- KIP-466: Add support for List<T> serialization and deserialization
- KIP-478 - Strongly typed Processor API
- KIP-557: Add emit on change support for Kafka Streams (partially implemented in v2.6)
- KIP-572: Improve timeouts and retries in Kafka Streams (partially implemented in v2.7)
- KIP-614: Add Prefix Scan support for State Stores
- KIP-623: Add "internal-topics" option to streams application reset tool
- KIP-663: API to Start and Shut Down Stream Threads
- KIP-671: Introduce Kafka Streams Specific Uncaught Exception Handler
- KIP-689: Extend `StreamJoined` to allow more store configs
- future release Kafka 2.8 (merged):
- next release Kafka 2.7 (merged):
- KIP-450: Sliding Window Aggregations in the DSL
- KIP-572: Improve timeouts and retries in Kafka Streams (partially implemented)
- KIP-607: Add Metrics to Kafka Streams to Report Properties of RocksDB
- KIP-613: Add end-to-end latency metrics to Streams (partially implemented in v2.6, TRACE level metrics added in 2.7)
- KIP-616: Rename implicit Serdes instances in kafka-streams-scala
- KIP-617: Allow Kafka Streams State Stores to be iterated backwards
- KIP-626: Rename StreamsConfig config variable name
- KIP-648: Renaming getter method for Interactive Queries
- KIP-662: Throw Exception when Source Topics of a Streams App are Deleted
Inactive (feel free to pick up and resume the discussion):
- KIP-95: Incremental Batch Processing for Kafka Streams
- KIP-159: Introducing Rich functions to Streams
- KIP-260: add primary join operation for Stream-Stream join (WIP) (draft)
- KIP-311: Async processing with dynamic scheduling in Kafka Streams
- KIP-314: KTable to GlobalKTable Bi-directional Join
- KIP-326: Schedulable KTable as Graph source
- KIP-335: Consider configurations for KafkaStreams
- KIP-362: Support dynamic gap session window
- KIP-378: Enable Dependency Injection for Kafka Streams handlers
- KIP-408: Add Asynchronous Processing To Kafka Streams
- KIP-457: Add DISCONNECTED status to Kafka Streams
- KIP-459: Improve KafkaStreams#close
- KIP-463: Auto-configure non-default Serdes passed alongside the TopologyBuilder
- KIP-XXX: [Streams] Support multiple topic resolution in TopicNameExtractor (draft)