Well... there are only 2 hard problems in computer science: naming things, cache invalidation, and off-by-one errors.
The direct stream implementation isn't asking you to "commit" anything. It's asking you to provide a starting point for the stream on startup. Because offset ranges are inclusive start, exclusive end, it's pretty natural to use the end of the previous offset range as the beginning of the next. On Fri, Jul 24, 2015 at 11:13 AM, Stevo Slavić <ssla...@gmail.com> wrote: > Hello Apache Kafka community, > > Say there is only one topic with single partition and a single message on > it. > Result of calling a poll with new consumer will return ConsumerRecord for > that message and it will have offset of 0. > > After processing message, current KafkaConsumer implementation expects one > to commit not offset 0 as processed, but to commit offset 1 - next > offset/position one would like to consume. > > Does this sound strange to you as well? > > Wondering couldn't this offset+1 handling for next position to read been > done in one place, in KafkaConsumer implementation or broker or whatever, > instead of every user of KafkaConsumer having to do it. > > Kind regards, > Stevo Slavic. >