[ 
https://issues.apache.org/jira/browse/CAMEL-22811?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

SRIKANTH PRATHIPATI updated CAMEL-22811:
----------------------------------------
    Description: 
h2. Background

Apache Kafka 4.0 introduces the “Next Generation of the Consumer Rebalance 
Protocol” (KIP-848), which is GA and designed to be fully incremental (no 
global sync barrier), improving rebalance times and scalability.​
With the new protocol, some behavior and configuration moves to the broker: 
heartbeat interval, session timeout, and the assignment strategy are controlled 
server-side for {{Consumer}} groups.​
h2. Problem statement (Camel impact)

KIP-848 expects the broker to manage {{{}partitionAssignor{}}}, 
{{{}heartbeatIntervalMs{}}}, and {{{}sessionTimeoutMs{}}}, while the current 
Camel Kafka component “defaulted these if these are not supplied.”​
Kafka’s own documentation for the new protocol states that 
{{{}heartbeat.interval.ms{}}}, {{{}session.timeout.ms{}}}, and 
{{partition.assignment.strategy}} are “no longer usable” when 
{{group.protocol=consumer}} is enabled.

Please refer to the related thread - [#camel > Kafka | Next Generation of the 
Consumer Rebalance 
Protocol|https://camel.zulipchat.com/#narrow/channel/257298-camel/topic/Kafka.20.7C.20Next.20Generation.20of.20the.20Consumer.20Rebalance.20Protocol/with/541949206]
h2. Requested change (what to implement)
 * Add/confirm first-class support for enabling the new protocol via consumer 
property {{group.protocol=consumer}} (pass-through supported), and ensure Camel 
does not inject defaults that conflict with the new protocol.​​

 * When {{{}group.protocol=consumer{}}}, avoid setting (or warn/error if user 
sets) classic-only properties such as {{{}heartbeat.interval.ms{}}}, 
{{{}session.timeout.ms{}}}, and {{partition.assignment.strategy}} (and 
Camel-level equivalents like {{{}heartbeatIntervalMs{}}}, 
{{{}sessionTimeoutMs{}}}, {{partitionAssignor}} defaults).​​

 * Optionally expose/document {{group.remote.assignor}} for selecting a 
server-side assignor (override broker default) when using the consumer protocol.

h2. Acceptance criteria (suggested)
 * With Kafka client 4.0+ and {{{}group.protocol=consumer{}}}, Camel consumer 
starts successfully without requiring {{session.timeout.ms}} / 
{{heartbeat.interval.ms}} / {{partition.assignment.strategy}} and without Camel 
adding defaults for them.​​

 * Add an integration test matrix (at least one) that runs Camel Kafka consumer 
with {{group.protocol=consumer}} against a Kafka 4.0+ broker.​

 * Documentation update: clearly describe “Classic vs Consumer” protocol 
selection, and call out unsupported configs under the consumer protocol.​

​[kip-848|[https://www.confluent.io/blog/kip-848-consumer-rebalance-protocol/]]

  was:
h2. Background

Apache Kafka 4.0 introduces the “Next Generation of the Consumer Rebalance 
Protocol” (KIP-848), which is GA and designed to be fully incremental (no 
global sync barrier), improving rebalance times and scalability.​
With the new protocol, some behavior and configuration moves to the broker: 
heartbeat interval, session timeout, and the assignment strategy are controlled 
server-side for {{Consumer}} groups.​
h2. Problem statement (Camel impact)

KIP-848 expects the broker to manage {{{}partitionAssignor{}}}, 
{{{}heartbeatIntervalMs{}}}, and {{{}sessionTimeoutMs{}}}, while the current 
Camel Kafka component “defaulted these if these are not supplied.”​
Kafka’s own documentation for the new protocol states that 
{{{}heartbeat.interval.ms{}}}, {{{}session.timeout.ms{}}}, and 
{{partition.assignment.strategy}} are “no longer usable” when 
{{group.protocol=consumer}} is enabled.

Please refer to the related thread - [#camel > Kafka | Next Generation of the 
Consumer Rebalance 
Protocol|https://camel.zulipchat.com/#narrow/channel/257298-camel/topic/Kafka.20.7C.20Next.20Generation.20of.20the.20Consumer.20Rebalance.20Protocol/with/541949206]
h2. Requested change (what to implement)
 * Add/confirm first-class support for enabling the new protocol via consumer 
property {{group.protocol=consumer}} (pass-through supported), and ensure Camel 
does not inject defaults that conflict with the new protocol.​​

 * When {{{}group.protocol=consumer{}}}, avoid setting (or warn/error if user 
sets) classic-only properties such as {{{}heartbeat.interval.ms{}}}, 
{{{}session.timeout.ms{}}}, and {{partition.assignment.strategy}} (and 
Camel-level equivalents like {{{}heartbeatIntervalMs{}}}, 
{{{}sessionTimeoutMs{}}}, {{partitionAssignor}} defaults).​​

 * Optionally expose/document {{group.remote.assignor}} for selecting a 
server-side assignor (override broker default) when using the consumer protocol.

h2. Acceptance criteria (suggested)
 * With Kafka client 4.0+ and {{{}group.protocol=consumer{}}}, Camel consumer 
starts successfully without requiring {{session.timeout.ms}} / 
{{heartbeat.interval.ms}} / {{partition.assignment.strategy}} and without Camel 
adding defaults for them.​​

 * Add an integration test matrix (at least one) that runs Camel Kafka consumer 
with {{group.protocol=consumer}} against a Kafka 4.0+ broker.​

 * Documentation update: clearly describe “Classic vs Consumer” protocol 
selection, and call out unsupported configs under the consumer protocol.​

​[kip-848|[https://www.confluent.io/blog/kip-848-consumer-rebalance-protocol/]]

[Kafka4.0-DocLink|https://cwiki.apache.org/confluence/display/KAFKA/KIP-848%3A+The+Next+Generation+of+the+Consumer+Rebalance+Protocol]


> camel-kafka: Support Kafka 4.0 KIP-848 consumer rebalance protocol 
> (group.protocol=consumer)
> --------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-22811
>                 URL: https://issues.apache.org/jira/browse/CAMEL-22811
>             Project: Camel
>          Issue Type: New Feature
>          Components: camel-kafka
>            Reporter: SRIKANTH PRATHIPATI
>            Priority: Minor
>
> h2. Background
> Apache Kafka 4.0 introduces the “Next Generation of the Consumer Rebalance 
> Protocol” (KIP-848), which is GA and designed to be fully incremental (no 
> global sync barrier), improving rebalance times and scalability.​
> With the new protocol, some behavior and configuration moves to the broker: 
> heartbeat interval, session timeout, and the assignment strategy are 
> controlled server-side for {{Consumer}} groups.​
> h2. Problem statement (Camel impact)
> KIP-848 expects the broker to manage {{{}partitionAssignor{}}}, 
> {{{}heartbeatIntervalMs{}}}, and {{{}sessionTimeoutMs{}}}, while the current 
> Camel Kafka component “defaulted these if these are not supplied.”​
> Kafka’s own documentation for the new protocol states that 
> {{{}heartbeat.interval.ms{}}}, {{{}session.timeout.ms{}}}, and 
> {{partition.assignment.strategy}} are “no longer usable” when 
> {{group.protocol=consumer}} is enabled.
> Please refer to the related thread - [#camel > Kafka | Next Generation of the 
> Consumer Rebalance 
> Protocol|https://camel.zulipchat.com/#narrow/channel/257298-camel/topic/Kafka.20.7C.20Next.20Generation.20of.20the.20Consumer.20Rebalance.20Protocol/with/541949206]
> h2. Requested change (what to implement)
>  * Add/confirm first-class support for enabling the new protocol via consumer 
> property {{group.protocol=consumer}} (pass-through supported), and ensure 
> Camel does not inject defaults that conflict with the new protocol.​​
>  * When {{{}group.protocol=consumer{}}}, avoid setting (or warn/error if user 
> sets) classic-only properties such as {{{}heartbeat.interval.ms{}}}, 
> {{{}session.timeout.ms{}}}, and {{partition.assignment.strategy}} (and 
> Camel-level equivalents like {{{}heartbeatIntervalMs{}}}, 
> {{{}sessionTimeoutMs{}}}, {{partitionAssignor}} defaults).​​
>  * Optionally expose/document {{group.remote.assignor}} for selecting a 
> server-side assignor (override broker default) when using the consumer 
> protocol.
> h2. Acceptance criteria (suggested)
>  * With Kafka client 4.0+ and {{{}group.protocol=consumer{}}}, Camel consumer 
> starts successfully without requiring {{session.timeout.ms}} / 
> {{heartbeat.interval.ms}} / {{partition.assignment.strategy}} and without 
> Camel adding defaults for them.​​
>  * Add an integration test matrix (at least one) that runs Camel Kafka 
> consumer with {{group.protocol=consumer}} against a Kafka 4.0+ broker.​
>  * Documentation update: clearly describe “Classic vs Consumer” protocol 
> selection, and call out unsupported configs under the consumer protocol.​
> ​[kip-848|[https://www.confluent.io/blog/kip-848-consumer-rebalance-protocol/]]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to