The Hadoop in Real World team shows how to update the consumer offset in Kafka:
In some scenarios, consumers which consumed the messages from a Kafka partition could have resulted in errors and the consumption would have been incomplete. In such cases of consumption failures you may have a need to re-consume the messages which were previously consumed. In such instances you would have to reset the consumer offset to an earlier offset.
This is one of the big advantages of a log-based message broker versus a queue: if you find a bug in a downstream consumer, it’s easy to generate correct results after fixing the bug, something which can be much harder to do otherwise.