Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Current state: Accepted

Discussion thread: here

Vote thread: here

JIRA: here

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

...

Code Block
languagejava
titleConsumerGroupMetadata
public sealed interface ConsumerGroupMetadata permits DefaultConsumerGroupMetadata {

    String groupId();

    int memberEpoch();

    String memberId();

    Optional<String> groupInstanceId();
}

...

  • Change is impacting all users using any available constructor of ConsumerGroupMetadata class.
  • For Kafka 4.2.0, we should keep the ConsumerGroupMetadata class as-is for backward compatibility, but deprecate all constructors and update the JavaDocs to indicate this class will become an interface in the future.
  • For Kafka 5.0, we do the actual code change from class to interface.
  • Once Kafka clients stop supporting Java 11 we can mark the ConsumerGroupMetadata interface as sealed with only default implementation permitted.

Test Plan

Automated tests which are part of CI will cover necessary tests.

...