I’m having a problem understanding the message.format.version
attribute in the topic configuration. In the documentation
it’s mentioned that:
Setting this value incorrectly will cause consumers with older versions to break as they will receive messages with a format that they don’t understand
But as far as I checked, any client works with any message format (the oldest I checked was with librdkafka 0.11.6
). So I don’t understand what Setting this value incorrectly means
I have 3 questions:
- Do I understand correctly that setting message.format.version in the topic configuration will just potentially make no conversions happen? For example: Running Kafka 2.8.0 but knowing that my client uses format 1.0, I can set 1.0
message.format.version
in the topic and hence avoid conversion? - are message formats after
0.11.0
the same? Does conversion happen if you havemessage.format.version = 0.11.0
but use one of the newest clients, like 2.8.0? Looking at the source code it seems like it doesn’t. - Can you change the
message.format.version
in an existing topic, and what happens then? Are the new messages kept in the same format but new produced with a new one?
I am aware of the same setting present in the brokers configuration and it’s use when migrating from versions older than 0.10.0.
I can’t find a good read on this attribute in the topic configuration, so I would really appreciate any hints! Cheers