http://www.confluent.io/blog/tutorial-getting-started-with-the-new-apache-kafka-0.9-consumer-client includes some great examples of how to manage offset commits in Kafka 0.9.
It is currently unclear from the JavaDoc that the following is expected:
The committed offset should always be the offset of the next message that
your application will read.
This information should be incorporated into the existing JavaDoc to make it clearer.