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

Reply via email to