...
- Kafka 3.0:
- KIP-622: Add currentSystemTimeMs and currentStreamTimeMs to ProcessorContext
- KIP-623: Add "internal-topics" option to streams application reset tool
- KIP-633: Drop 24 hour default of grace period in Streams (partially implemented; completed in v3.1)
- KIP-715: Expose Committed offset in streams
- KIP-732: Deprecate eos-alpha and replace eos-beta with eos-v2
- KIP-733: change Kafka Streams default replication factor config
- KIP-741: Change default serde to be null
- KIP-466: Add support for List<T> serialization and deserialization
- KIP-695: Further Improve Kafka Streams Timestamp Synchronization
- KIP-725: Streamlining configurations for WindowedSerializer and WindowedDeserializer.
- KIP-740: Clean up public API in TaskId and fix TaskMetadata#taskId()
- KIP-743: Remove config value 0.10.0-2.4 of Streams built-in metrics version config
- KIP-744: Migrate TaskMetadata and ThreadMetadata to an interface with internal implementation
- Kafka 2.8:
- KIP-418: A method-chaining way to branch KStream
- KIP-572: Improve timeouts and retries in Kafka Streams (completed; partially implemented in v2.7)
- KIP-614: Add Prefix Scan support for State Stores
- KIP-659: Improve TimeWindowedDeserializer and TimeWindowedSerde to handle window size
- KIP-663: API to Start and Shut Down Stream Threads
- KIP-696: Update Streams FSM to clarify ERROR state meaning
- KIP-671: Introduce Kafka Streams Specific Uncaught Exception Handler
- KIP-680: TopologyTestDriver should not require a Properties argument
- KIP-689: Extend `StreamJoined` to allow more store configs
- Kafka 2.7:
- KIP-450: Sliding Window Aggregations in the DSL
- KIP-572: Improve timeouts and retries in Kafka Streams (partially implemented; completed in v2.8)
- KIP-607: Add Metrics to Kafka Streams to Report Properties of RocksDB
- KIP-613: Add end-to-end latency metrics to Streams (completed; partially implemented in v2.6)
- 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
- Kafka 2.6:
- KIP-221: Enhance DSL with Connecting Topic Creation and Repartition Hint
- KIP-401: TransformerSupplier/ProcessorSupplier StateStore connecting
- KIP-441: Smooth Scaling Out for Kafka Streams
- KIP-444: Augment metrics for Kafka Streams (completed; partially implemented in v2.4 and v2.5)
- KIP-446: Add changelog topic configuration to KTable suppress
- KIP-447: Producer scalability for exactly once semantics (Kafka Streams changes; broker/client side changes already implemented v2.5)
- KIP-557: Add emit on change support for Kafka Streams (partially implemented)
- KIP-571: Add option to force remove members in StreamsResetter
- KIP-594: Expose output topic names from TopologyTestDriver
- KIP-613: Add end-to-end latency metrics to Streams (partially implemented; completed in v2.7)
- Kafka 2.5:
- KIP-444: Augment metrics for Kafka Streams (partially implemented in v2.4 and v2.5; completed in v2.6)
- KIP-523: Add KStream#toTable to the Streams DSL
- KIP-527: Add VoidSerde to Serdes
- KIP-530: Consider renaming 'UsePreviousTimeOnInvalidTimeStamp' class to 'UsePartitionTimeOnInvalidTimeStamp'
- Kafka 2.4:
- KIP-213 Support non-key joining in KTable
- KIP-307: Allow to define custom processor names with KStreams DSL (completed; partially implemented in v2.3)
- KIP-345: Introduce static membership protocol to reduce consumer rebalances (completed; partially implemented in v2.3)
- KIP-429: Kafka Consumer Incremental Rebalance Protocol
- KIP-444: Augment metrics for Kafka Streams (partially implemented in v2.4 and v2.5; completed in v2.6)
- KIP-470: TopologyTestDriver test input and output usability improvements
- KIP-471: Expose RocksDB Metrics in Kafka Streams (partially implemented; completion blocked)
- KIP-474: To deprecate WindowStore#put(key, value)
- KIP-479: Add StreamJoined config object to Join
- KIP-528: Deprecate PartitionGrouper configuration and interface
- Kafka 2.3:
- KIP-258: Allow to Store Record Timestamps in RocksDB (partially implemented; not completed yet → inactive)
- KIP-307: Allow to define custom processor names with KStreams DSL (partially implemented; completed in v2.4)
- KIP-313: Add KStream.flatTransform and KStream.flatTransformValues (completed; partially implemented in v2.2)
- KIP-331 Add default implementation to close() and configure() for Serializer, Deserializer and Serde
- KIP-345: Introduce static membership protocol to reduce consumer rebalances (partially implemented; completed in v2.4)
- KIP-428: Add in-memory window store
- KIP-442: Return to default max poll interval in Streams
- KIP-443: Return to default segment.ms and segment.index.bytes in Streams repartition topics
- KIP-445: In-memory Session Store
- KIP-453: Add close() method to RocksDBConfigSetter
- KIP-462: Use local thread id for KStreams
- Kafka 2.2:
KIP-313: Add KStream.flatTransform and KStream.flatTransformValues (partially implemented; completed in v2.3)
KIP-393: Time windowed serde to properly deserialize changelog input topic
...