Junior — Middle
How is the message processing confirmation mechanism implemented in Kafka?
sobes.tech AI
Answer from AI
In Apache Kafka, message processing acknowledgment is done through the offset commit mechanism.
Process:
- The consumer receives a message from the topic.
- After successful processing of the message, the consumer commits the offset of that message.
- Kafka stores information about the last committed offset for each consumer group.
In Go, using a Kafka client (such as sarama or confluent-kafka-go), acknowledgment can be automatic or manual:
- Automatic commit — the client periodically sends information about the last processed offset.
- Manual commit — the developer explicitly calls the commit method after processing the message, providing more control and reliability.
Example with sarama (manual commit):
consumer, _ := sarama.NewConsumerGroup(brokers, groupID, config)
// In the message handler after processing:
session.MarkMessage(message, "") // marks the message as processed
// After processing is complete, call Commit()