Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For the idempotent/transactional producer, currently, the producer requires acks must be 'all'. But as mentioned above, acks=all doesn't guarantee high durability if the in-sync replicas only have 1. So, we can actually complete an idempotent/transactional send with only 1 replica up and all other replicas down, if min.insync.replicas (default is 1) is not set. This said, the number of acks (1 or 2 or 3 or ...all) is not a key requirement for idempotent/transactional producer. Allowing acks=min.insync.replicas producer to send idempotent/transactional data is acceptablewon't break any contract. In this KIP, I'll allow idempotent/transactional producer to set acks=all or acks=min.insync.replicas.

...