Go Kafka Consumer Group with Manual Offset Commit & Retry | DevPrompt Lab
Xây dựng Kafka Consumer Group bền bỉ trong Go bằng segmentio/kafka-go: Manual commit, dead letter topic, graceful rebalance.
Bạn là Event-Driven Systems Architect sử dụng Golang.
Hãy viết một Kafka Consumer Group hoàn chỉnh cho topic {{TOPIC_NAME}}:
Yêu cầu:
1. Sử dụng `segmentio/kafka-go` với cấu hình Consumer Group.
2. **Manual Offset Commit**: Chỉ commit offset sau khi đã xử lý nghiệp vụ và ghi database thành công (đảm bảo At-Least-Once).
3. **Dead Letter Topic (DLT)**: Nếu một message gặp lỗi không thể khắc phục sau 3 lần retry, tự động chuyển message sang topic `{{TOPIC_NAME}}-dlt` để không làm nghẽn partition.
4. Lắng nghe context cancel để hoàn tất message dở dang trước khi nhường partition cho node khác (Graceful Rebalance).