Versions Compared

Key

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

...

Code Block
titleLeaveGroupResponse.java
public static Schema[] schemaVersions() {
    return new Schema[] {LEAVE_GROUP_RESPONSE_V0, LEAVE_GROUP_RESPONSE_V1, LEAVE_GROUP_RESPONSE_V2, LEAVE_GROUP_RESPONSE_V3};
}

We are also introducing a two new type of return error in JoinGroupResponse V4return errors. Will explain the handling in the following section.

Code Block
languagejava
titleErrors.java
MEMBER_ID_MISMATCH(78, "The join group contains group.instance.id which is already in the consumer group, however the member.id was not matching the record on coordinator", MemeberIdMisMatchException::new),
GROUP_INSTANCE_ID_INVALID(79, "The group.instance.id list specified in the leave group request contains invalid ids", GroupInstanceIdInvalidException::new)

Stream side change

On Kafka Streams side, we plan to expose the list of `group.instance.id` for easy management combined with command line scripts:

...

  1. The broker is on an old version (UNSUPPORTED_VERSION)
  2. Consumer group does not exist (INVALID_GROUP_ID)
  3. Operator is not authorized. (neither admin nor consumer group creater)
  4. If the group is not in a valid state to transit to rebalance. (use `canRebalance` function defined in GroupMetadata.scala to check)
  5. GROUP_AUTHORIZATION_FAILED)
  6. Some instance ids are not found, which means the request is not valid (GROUP_INSTANCE_ID_INVALID, defined in the public changes section)

We need to enforce special access to these APIs for the end user who may not be in administrative role of Kafka Cluster. The solution is to allow a similar access level to the join group request, so the consumer service owner could easily use this API.

...