Spring for Apache Kafka 2.3 is now available

We are pleased to announce the following releases are now available.

All users are encouraged to upgrade to these versions

The 2.3.0 release is the first release of the newest line for this project.

Refer to the What’s New chapter for more information, but here are a few highlights:


  • Option to use a producer per thread, to avoid blocking other threads when flushing.

  • The AggregatingReplyingKafkaTemplate extension to the ReplyingKafkaTemplate is provided to aggregate replies from multiple consumers.


  • You can now add a RecordInterceptor to modify the record before the listener is invoked.

  • ConsumerSeekAware now supports relative seeks.

  • You can now specify a delay between processing the results of the previous poll() and issuing the next poll().

  • When using manual AckMode s, you can now negatively acknowledge a record and the container will perform the necessary seeks to replay the record.

  • Micrometer Timer s are now supported to monitor listener performance.

  • The SeekToCurrentErrorHandler can be configured to treat certain exceptions as fatal, disabling retry; you can also now add a BackOff between redelivery attempts for failed deliveries.

  • The RetryingDeserializer is provided to retry serialization in the event of, say, a network glitch accessing a schema registry.

Kafka Streams

  • The RecoveringDeserializationExceptionHandler is now provided for handling deserialization exceptions.

  • The HeaderEnricherTransformer is provided to add headers within a stream topology definition.

  • The MessagingTransformer is provided to allow invocation of a Spring Integration flow from within a stream definition.


  • Delegating serializer and deserializer implementations are provided to allow sending/receiving records containing different types.

comments powered by Disqus