Hi, We have defined the remote log segment metadata schemas with type as "metadata" (controller records) in #10271 <https://github.com/apache/kafka/pull/10271>:
1. RemoteLogSegmentMetadataRecord.json <https://github.com/apache/kafka/blob/trunk/storage/src/main/resources/message/RemoteLogSegmentMetadataRecord.json> 2. RemoteLogSegmentMetadataSnapshotRecord.json <https://github.com/apache/kafka/blob/trunk/storage/src/main/resources/message/RemoteLogSegmentMetadataSnapshotRecord.json> 3. RemoteLogSegmentMetadataUpdateRecord.json <https://github.com/apache/kafka/blob/trunk/storage/src/main/resources/message/RemoteLogSegmentMetadataUpdateRecord.json> and 4. RemotePartitionDeleteMetadataRecord.json <https://github.com/apache/kafka/blob/trunk/storage/src/main/resources/message/RemotePartitionDeleteMetadataRecord.json> In the future, when the schema gets evolved, then the backward compatibility might get broken. The broker with the old schema will fail to read new events and throw UnsupportedVersionException. This also means that we cannot rollback the build once some segments are uploaded to the remote storage with the new schema events. Let me know if my understanding is not correct. -- Kamal
