Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreOn behalf of the team and everyone who contributed, we are pleased to announce that Spring for Apache Kafka 4.1.0-M2, 4.0.4, and 3.3.14 have been released.
We extend our gratitude to all contributors who made these releases possible.
Spring for Apache Kafka 4.1.0-M2 is the first release built on Apache Kafka client 4.2.0.
This upgrade aligns the framework with the latest Kafka client and broker features, including improvements to the share consumer (KIP-932: Queues for Kafka) support and related APIs.
ShareAcknowledgment now supports renew(), exposing Kafka’s AcknowledgeType.RENEW (KIP-1222).Use it when processing may exceed group.share.record.lock.duration.ms. Call renew() to extend the acquisition lock without completing the record; a terminal acknowledgment (acknowledge(), release(), or reject()) is still required once when processing finishes.
This includes proper handling of RecordDeserializationException and CorruptRecordException at poll time, and a pluggable recovery strategy for listener-level failures, bringing behavior closer to the traditional container’s CommonErrorHandler model.
RetryableTopic defaults (#3706): The default behavior of @RetryableTopic and RetryTopicConfigurationBuilder is now aligned with the documentation.
DefaultErrorHandler and suspend methods (#3618): DefaultErrorHandler now works correctly with Kotlin suspend listener methods.
Bug fixes:
assertTopic validation with meta-annotated @KafkaListener and programmatic topic resolution (#4303)Mono (#4198).Both patch releases include the same set of bug fixes, backported from 4.1.0-M2:
@KafkaListener with programmatic topic resolution.Spring Kafka 3.3.14 will be integrated into Spring Boot 3.5.12. Spring Kafka 4.0.4 will be integrated into Spring Boot 4.0.4. Spring Kafka 4.1.0-M2 will be integrated into Spring Boot 4.1.0-M3.
Feedback and issue reports are welcome on GitHub.