Hi Justine, Thanks for the KIP. This area of Kafka is complicated and making it easier is good.
When I use the `kafka-features.sh` tool to describe the features on my cluster, I find that there’s a single feature called “metadata.version”. I think this KIP does a handful of things: 1) It introduces the idea of two new features, TV and GCV, without giving them concrete names or describing their behaviour. 2) It introduces a new flag on the storage tool to enable advanced users to control individual features when they format storage for a new broker. 3) It introduces a new flag on the features tool to enable a set of latest stable features for a given version to be enabled all together. I think that (1) probably shouldn’t be in this KIP unless there are concrete details. Maybe this KIP is enabling the operator experience when we introduce TV and GCV in other KIPs. I don’t believe the plan is to enable the new group coordinator with a feature, and it seems unnecessary to me. I think it’s more compelling for TV given the changes in transactions. For (2) and (3), it would be helpful to explicit about the syntax for the enhancements to the tool. I think that for the features tool, `--release-version` is an optional parameter which requires a RELEASE_VERSION argument. I wonder whether it would be helpful to have `--latest-stable` as an option too. Thanks, Andrew > On 26 Feb 2024, at 21:26, Justine Olshan <jols...@confluent.io.INVALID> wrote: > > Hello folks, > > I'm proposing a KIP that allows for setting and upgrading new features > (other than metadata version) via the kafka storage format and feature > tools. This KIP extends on the feature versioning changes introduced by > KIP-584 by allowing for the features to be set and upgraded. > > Please take a look: > https://cwiki.apache.org/confluence/display/KAFKA/KIP-1023%3A+Formatting+and+Updating+Features > > Thanks, > > Justine