Hi Scott, what producer client are you using?
Reordering is possible in async producers in the case of temporary broker failures and the combination of request.required.acks != 0 and retries > 0. Consider the case where a producer has 20 messages in-flight to the broker, out of those messages # 1-10 fails due to some temporary failure (?) on the broker side, but message # 11-20 are accepted. When the producer receives error results from the broker for message # 1-10 it will try to resend these 10 failed messages, that are now accepted, causing them to end up after message #20 in the log - thus reordered. This failure scenario should be rather rare though. Regards, Magnus 2015-05-12 20:18 GMT+02:00 Scott Chapman <sc...@woofplanet.com>: > We are basically using kafka as a transport mechanism for multi-line log > files. > > So, for this we are using single partition topics (with a replica for good > measure) writing to a multi-broker cluster. > > Our producer basically reads a file line-by-line (as it is being written > to) and publishes each line as a message to the topic. We are also writing > as quickly as we can (not waiting for ACK). > > What I am seeing is occasionally the messages in the topic appear to be > slightly out of order when compared to the source file they were based on. > > I am wonder if this might happen when the producer switches brokers because > we are not waiting for the ACK before continuing to write. > > Does this make any sense?? > > Thanks in advance! > > -Scott >