[ https://issues.apache.org/jira/browse/KAFKA-1612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14133506#comment-14133506 ]
Neha Narkhede commented on KAFKA-1612: -------------------------------------- [~gian] The current API was designed to assume that a message is "delivered" once it has been returned by the iterator. Over time, we have realized the deficiency of that API where custom commit logic is required to suit message processing. We are fixing that in the 0.9 consumer API. So it is best to wait for that API instead of significantly changing the behavior of the existing one. If you agree, I'd close this JIRA since the 0.9 API already takes care of this problem. > Consumer offsets auto-commit before processing finishes > ------------------------------------------------------- > > Key: KAFKA-1612 > URL: https://issues.apache.org/jira/browse/KAFKA-1612 > Project: Kafka > Issue Type: Bug > Components: consumer > Affects Versions: 0.8.1.1 > Reporter: Gian Merlino > Assignee: Neha Narkhede > > In a loop like this, > for (message <- kafkaStream) { > process(message) > } > The consumer can commit offsets for the next message while "process" is > running. If the program crashes during "process", the next run will pick up > from the *next* message. The message in flight at the time of the crash will > never actually finish processing. Instead, I would have expected the high > level consumer to deliver messages at least once. -- This message was sent by Atlassian JIRA (v6.3.4#6332)