Releases: spring-projects/spring-kafka
Releases · spring-projects/spring-kafka
v4.1.0
⭐ New Features
- make the method setBackOffFunction work for the batch processing as well #4455
🐞 Bug Fixes
- Require exact package match for trusted header types #4496
- Harden retry topic headers decoding in Spring Kafka #4493
- Fix unbounded cache in
DelegatingDeserializer#4489 @RetryableTopic: built-in DLT logging handler fails with "No Acknowledgment available" on 4.0 (works on 3.3.x) #4468- Suspend
@KafkaListenerre-delivers a failing record without bound afterDefaultErrorHandlerretries are exhausted #4465 - KafkaMessageListenerContainer for ackMode=COUNT_TIME doesn't check ackTime #4444
- Different behavior for value serializer mappings for different classloaders #4442
- DefaultAfterRollbackProcessor for batch-listeners consuming ConsumerRecords doesn't seek consumer #4439
- NPE when properties are not defined for StreamsBuilderFactoryBean #4434
- Incorrect key, value, and headers passed to
KafkaStreamsDeadLetterDestinationResolver#4430 - Inconsistent handling of non-string values in Properties argument passed to DefaultConsumerFactory::createKafkaConsumer #4384
📔 Documentation
BatchListenerFailedExceptionsilently commits offsets for unprocessed records inBatchMessageListener#4436- Polish
README.mdandCONTRIBUTING.adoc#4184
🔨 Dependency Upgrades
- Bump io.projectreactor:reactor-bom from 2025.0.5 to 2025.0.6 #4485
- Bump org.springframework:spring-framework-bom from 7.0.7 to 7.0.8 #4481
- Bump io.micrometer:micrometer-tracing-bom from 1.7.0-SNAPSHOT to 1.7.0 #4480
- Bump com.fasterxml.jackson:jackson-bom from 2.21.3 to 2.21.4 #4458
- Bump tools.jackson:jackson-bom from 3.1.3 to 3.1.4 #4457
- Bump kafkaVersion from 4.2.0 to 4.2.1 #4456
- Bump org.slf4j:slf4j-api from 2.0.17 to 2.0.18 #4445
- Bump tools.jackson:jackson-bom from 3.1.2 to 3.1.3 #4438
- Bump com.fasterxml.jackson:jackson-bom from 2.21.2 to 2.21.3 #4437
- Bump kotlinVersion from 2.3.20 to 2.3.21 #4426
❤️ Contributors
Thank you to all the contributors who worked on this release:
v4.0.6
⭐ New Features
- make the method setBackOffFunction work for the batch processing as well #4473
🐞 Bug Fixes
- Require exact package match for trusted header types #4497
- Harden retry topic headers decoding in Spring Kafka #4495
- Fix unbounded cache in
DelegatingDeserializer#4491 @RetryableTopic: built-in DLT logging handler fails with "No Acknowledgment available" on 4.0 (works on 3.3.x) #4474- Different behavior for value serializer mappings for different classloaders #4461
- NPE when properties are not defined for StreamsBuilderFactoryBean #4454
- DefaultAfterRollbackProcessor for batch-listeners consuming ConsumerRecords doesn't seek consumer #4452
- Inconsistent handling of non-string values in Properties argument passed to DefaultConsumerFactory::createKafkaConsumer #4421
📔 Documentation
- Spring Kafka documentation does not mention
spring-boot-starter-kafkarequirement for Spring Boot 4 #4464
🔨 Dependency Upgrades
- Bump org.springframework.data:spring-data-bom from 2025.1.5 to 2025.1.6 #4488
- Bump org.springframework:spring-framework-bom from 7.0.7 to 7.0.8 #4478
- Bump io.micrometer:micrometer-tracing-bom from 1.6.5 to 1.6.6 #4477
- Bump io.projectreactor:reactor-bom from 2025.0.5 to 2025.0.6 #4476
- Bump io.micrometer:micrometer-bom from 1.16.5 to 1.16.6 #4475
- Bump org.slf4j:slf4j-api from 2.0.17 to 2.0.18 #4446
v3.3.16
⭐ New Features
- make the method setBackOffFunction work for the batch processing as well #4472
🐞 Bug Fixes
- Require exact package match for trusted header types #4498
- Harden retry topic headers decoding in Spring Kafka #4494
- Fix unbounded cache in
DelegatingDeserializer#4492 - Different behavior for value serializer mappings for different classloaders #4462
- NPE when properties are not defined for StreamsBuilderFactoryBean #4453
- Inconsistent handling of non-string values in Properties argument passed to DefaultConsumerFactory::createKafkaConsumer #4420
🔨 Dependency Upgrades
- Bump org.springframework.retry:spring-retry from 2.0.12 to 2.0.13 #4484
- Bump org.springframework:spring-framework-bom from 6.2.18 to 6.2.19 #4482
- Bump io.projectreactor:reactor-bom from 2024.0.17 to 2024.0.18 #4479
- Bump com.fasterxml.jackson:jackson-bom from 2.18.7 to 2.18.8 #4459
- Bump gradle-wrapper from 8.14.4 to 8.14.5 #4441
- Bump com.fasterxml.jackson:jackson-bom from 2.18.6 to 2.18.7 #4424
v4.1.0-RC1
⭐ New Features
- Add AcknowledgementCommitCallback support for async share consumer commits #4380
- Introduce
ShareAckModeenum for share consumers #4376 - Expose
group.protocolconfiguration for Kafka Streams server-side rebalance (KIP-1071) #4329 - Expose native Kafka Streams DLQ configuration (KIP-1034) #4328
- Add stop and failure lifecycle events to share consumer container #4327
- Verify
share.acquire.mode(KIP-1206) works through Spring's config model #4326 - Add async commit option to share consumer container #4324
🐞 Bug Fixes
- Fix immutability StreamsBuilderFactory properties #4382
- Async Processing (and out of order commits) with FilteringMessageListenerAdapter #4377
- ShareKafkaMessageListenerContainer.doStart() does not await consumer thread startup #4357
- Missing JSpecify
@Nullableannotation for consumer & producer factories #4355
📔 Documentation
- Improve description of messageListener in container properties documentation #4417
🔨 Dependency Upgrades
- Bump io.projectreactor:reactor-bom from 2025.0.4 to 2025.0.5 #4409
- Bump tools.jackson:jackson-bom from 3.1.1 to 3.1.2 #4407
- Bump org.springframework:spring-framework-bom from 7.0.6 to 7.0.7 #4403
- Bump org.apache.logging.log4j:log4j-bom from 2.25.3 to 2.25.4 #4387
- Bump tools.jackson:jackson-bom from 3.1.0 to 3.1.1 #4375
- Bump gradle-wrapper from 9.4.0 to 9.4.1 #4364
- Bump com.fasterxml.jackson:jackson-bom from 2.21.1 to 2.21.2 #4361
❤️ Contributors
Thank you to all the contributors who worked on this release:
@maxwell-balla, @Tarte12, @zooo-code, @loicgreffier, @Arbaz4Sayyad, @Gautam-aman, @jad837
v4.0.5
🐞 Bug Fixes
- Async Processing (and out of order commits) with FilteringMessageListenerAdapter #4414
- ShareKafkaMessageListenerContainer.doStart() does not await consumer thread startup #4400
- Fix immutability StreamsBuilderFactory properties #4389
- Missing JSpecify
@Nullableannotation for consumer & producer factories #4368
🔨 Dependency Upgrades
- Bump org.springframework:spring-framework-bom from 7.0.6 to 7.0.7 #4413
- Bump io.projectreactor:reactor-bom from 2025.0.4 to 2025.0.5 #4412
- Bump org.springframework.data:spring-data-bom from 2025.1.4 to 2025.1.5 #4411
- Bump io.micrometer:micrometer-tracing-bom from 1.6.4 to 1.6.5 #4408
- Bump io.micrometer:micrometer-bom from 1.16.4 to 1.16.5 #4406
- Bump log4jVersion from 2.25.3 to 2.25.4 #4386
- Bump kafkaVersion from 4.1.1 to 4.1.2 #4363
v3.3.15
v4.1.0-M2
⭐ New Features
- Add
RENEWacknowledgment type toShareAcknowledgment#4322 - Add error handling strategy (poll-level and listener-level) to Share consumer container #4321
- Align default behavior of
@RetryableTopicandRetryTopicConfigurationBuilderwith documentation #3706 - DefaultErrorHandler doesn't work with suspend methods #3618
🐞 Bug Fixes
- Listener with async acks pauses indefinitely #4332
- Observations for filtered messages are leaked, filling memory #4306
- assertTopic validation breaks meta-annotated
@KafkaListenerwith programmatic topic resolution #4303 - With a
@KafkaListenerthat returns a Mono, the error handler does not retry #4198
🔨 Dependency Upgrades
- Bump kotlinVersion from 2.3.10 to 2.3.20 #4354
- Bump io.projectreactor:reactor-bom from 2025.0.3 to 2025.0.4 #4350
- Bump org.springframework:spring-framework-bom from 7.0.5 to 7.0.6 #4347
- Bump org.springframework:spring-framework-bom from 7.0.4 to 7.0.5 #4308
- Upgrade to Apache Kafka 4.2.0 #4302
❤️ Contributors
Thank you to all the contributors who worked on this release:
v4.0.4
🐞 Bug Fixes
- Listener with async acks pauses indefinitely #4344
- Observations for filtered messages are leaked, filling memory #4336
- assertTopic validation breaks meta-annotated
@KafkaListenerwith programmatic topic resolution #4311
🔨 Dependency Upgrades
- Bump io.projectreactor:reactor-bom from 2025.0.3 to 2025.0.4 #4353
- Bump org.springframework.data:spring-data-bom from 2025.1.3 to 2025.1.4 #4352
- Bump org.springframework:spring-framework-bom from 7.0.5 to 7.0.6 #4349
- Bump io.micrometer:micrometer-tracing-bom from 1.6.3 to 1.6.4 #4348
- Bump io.micrometer:micrometer-bom from 1.16.3 to 1.16.4 #4346
v3.3.14
v4.1.0-M1
⭐ New Features
- Add ackMode attribute to
@KafkaListenerfor per-listener acknowledgment configuration #4174
🐞 Bug Fixes
- KafkaMessageListenerContainer.getAssignedPartitions can throw ConcurrentModificationException #4273
- GlobalEmbeddedKafkaTestExecutionListener generates log statement even when not enabled #4267
📔 Documentation
- GH-4278: Update Quick Tour and Testing Applications for Spring Boot starter dependencies #4279
- Spring Kafka documentation does not mention
spring-boot-starter-kafkarequirement for Spring Boot 4 #4278 - Fix formatting in
transactions.adoc#4271 - Extend AcknowledgingMessageListener to inherit from MessageListener #4257
🔨 Dependency Upgrades
- Bump org.junit:junit-bom from 6.0.2 to 6.0.3 #4296
- Bump io.micrometer:micrometer-bom from 1.16.2 to 1.16.3 #4288
- Bump org.springframework.data:spring-data-bom from 2025.1.2 to 2025.1.3 #4287
- Bump org.springframework:spring-framework-bom from 7.0.3 to 7.0.4 #4284
- Bump io.projectreactor:reactor-bom from 2025.0.2 to 2025.0.3 #4283
- Bump io.micrometer:micrometer-tracing-bom from 1.6.2 to 1.6.3 #4282
- Bump org.assertj:assertj-core from 3.27.6 to 3.27.7 #4270
- Bump gradle-wrapper from 8.14.1 to 8.14.4 #4263
- Bump tools.jackson:jackson-bom from 3.0.3 to 3.0.4 #4261
❤️ Contributors
Thank you to all the contributors who worked on this release: