...
To solve this problem, we propose introducing a new idempotence mode in 1.0.0, ie. enable.idempotence=saferequested
. The other modes would be enable.idempotence=off
and enable.idempotence=required.
In the safe
mode, idempotence would be best effort, ie. you get it if the broker supports it, otherwise no error is raised. In required
mode, requests would fail if the broker did not support idempotence. In off
mode, there is no idempotence (similar to the false
value today).
The new enable.idempotence=saferequested
mode would be introduced in the 1.0.0 release. In addition, the 1.0.0 broker will automatically downgrade messages sent in safe mode 'requested' mode from the 0.11.0 message format if the topic being written to is configured to use an older message format version. In required mode, the broker would raise an error.
...
Additionally, if a 1.0.0 client with enable.idempotence=safe
is requested
is writing to an 0.11.0 broker, idempotence will be disabled.
...