I have a question related to the semantics of a producer send and the get calls on the future returned by the send call.
- It is a Java application, using the Kafka Java client library - The application is set up to use 3 replicas and using acks=all for the producer - the application is using a non-zero value for linger.ms and batch.size parameters - The application is using a single non-transactional Kafka producer instance, shared across a number of threads With that, - Any application thread makes a send() call on the producer. - Then the same thread calls get() on the future returned by the last send() call - The get() call on the future returns after it gets the acknowledgement from the system for the message send At this point, is it guaranteed that the message has actually been written (but may not be committed by calling fsync) to ALL of the replicas’ filesystems? Sincerely, Anindya Haldar Oracle Responsys