Kafka - re-consuming or reprocessing failed messages

Something like this might be nice for the retries.

Thank you. I have two options. I will store failed jobs in my microservice or I will send the messages to dead letter queue and I will consume them from another worker.

Sending them to dead letter queue sounds similar to backoff

ReadMessage automatically commits offsets when using consumer groups.
did you try removing your own CommitMessages call, allowing the ReadMessage call to do this for you?

Yeah I will auto commit messages, if any problem occurs with sending mails, I will send the failed jobs to dead letter queue then will consume again from there.

If you store failed jobs in your dead letter queue (topic) and will not try to re-process them if they are failed again then it is fine with auto commit.
However if you want to make sure all jobs are done successfully then i think you still need a re-try mechanism for jobs in dead letter topic.