Sorry for the delayed response. I passed the consumeMessage to downstream handlers and mark message as processed if no error is encountered. So if app crashed and restarted, we would start from the last uncommitted message and 'process at least once'. But be clear that Sarama commits offsets asynchronously, you can use this to commit manually but sacrifice some performance: https://github.com/Shopify/sarama/pull/1699/files

Breathtaking interfaces and strong services together make great products

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store