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).