Skip to content

Conversation

@kaisecheng
Copy link
Contributor

@kaisecheng kaisecheng commented Oct 6, 2025

  • Update kafka client to 4.1.0 and transitive dependencies
    • partitioner default and uniform_sticky are removed. This is a breaking change.
      • UniformStickyPartitioner and DefaultPartitioner classes are removed
      • By not setting a partitioner, the plugin uses the Kafka client's default partitioner, which is a variant of uniform sticky.
    • linger_ms default value changed from 0 to 5
    • add dependency jackson-datatype-jdk8
    • AbstractKafkaAvroSerDeConfig rename to AbstractKafkaSchemaSerDeConfig
    • DeleteTopicsResult.values() is deprecated. Use topicNameValues() instead
    • Update integration test Kafka version
      • handle zookeeper removal
      • org.eclipse.jetty.jaas.spi.PropertyFileLoginModule move to org.eclipse.jetty.security.jaas.spi.PropertyFileLoginModule
  • kafka-input adds group_protocols options for configuring new consumer rebalance protocol
    • consumer opts in to the new consumer group protocol
      • It cannot set along with partition_assignment_strategy, heartbeat_interval_ms and session_timeout_ms
    • classic is the default protocol
  • Update docs
  • Improve Integration test
    • supports testing multiple versions
    • use a faster download url
    • update deprecated command

Notable change in Kafka 4

  • zookeeper is removed
  • java 8 is not supported

Author's Checklist

  • integration test against Kafka v3 and v4
  • kafka-input group_protocols => consumer consumes data in Kafka v4
  • kafka-input group_protocols => consumer cannot start in Kafka v3

Related issues

PR: #206
Closes #195

- added jackson-datatype-jdk8
- Avro class renamed
    AbstractKafkaAvroSerDeConfig is renamed to AbstractKafkaSchemaSerDeConfig
- kafka-output `partitioner` classes are removed
    UniformStickyPartitioner and DefaultPartitioner are removed
    only `round_robin` and `uniform_sticky` are available
- kafka-client DeleteTopicsResult values() is deprecated
    used topicNameValues() instead
- doc changed the default behaviour of `partitioner`
@kaisecheng kaisecheng force-pushed the upgrade_kafka_client_v4 branch from 757b7c5 to b6cbe0b Compare October 8, 2025 21:11
@kaisecheng kaisecheng marked this pull request as ready for review October 8, 2025 21:21
Comment on lines +81 to +82
if [[ "$KAFKA_MAJOR_VERSION" -eq 3 ]]; then
cp "spec/fixtures/jaas$KAFKA_MAJOR_VERSION.config" "build/confluent_platform/etc/schema-registry/jaas.config"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI only tests against Kafka 4. Keeping old jaas.config for development testing against Kafka 3.

kaisecheng and others added 3 commits October 9, 2025 13:35
Align with Kafka client 4.0 default value change
…ash-integration-kafka into upgrade_kafka_client_v4
@kaisecheng kaisecheng requested a review from jsvd October 13, 2025 14:18
Copy link
Member

@jsvd jsvd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please bump the version on the integration .gemspec

@kaisecheng
Copy link
Contributor Author

please bump the version on the integration .gemspec

I have updated logstash-integration-kafka.gemspec to 12.0.0. Do I miss anything?

@jsvd
Copy link
Member

jsvd commented Oct 15, 2025

my bad, I blame github always linking only to the changes since the last commit instead of the entire PR.

Copy link
Member

@jsvd jsvd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor documentation tweak, otherwise LGTM

@kaisecheng kaisecheng merged commit 71afae2 into logstash-plugins:main Oct 16, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade Kafka Plugin to Use Kafka Client 4.0

2 participants