pingcap / pingcap/ticdc

kafka-consumer: remove the librdkafka dependency

Open
#6,310 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type/enhancement
Dominant language
Go
Stars
56
Forks
63
Avg merge
2d 20h
Merged PRs (30d)
34

Description

Is your feature request related to a problem?

The Kafka consumer utility depends on confluent-kafka-go and its bundled librdkafka. Its Alpine image requires SASL development and runtime libraries, and its blocking message read cannot promptly respond to context cancellation when no messages arrive.

Describe the feature you'd like

Use a Go Kafka client for the consumer utility while retaining manual offset commits, earliest offset reset, range assignment, and the existing TLS flags. Consumption should stop when its context is canceled, including while idle.

Teachability, Documentation, Adoption, Migration Strategy

This tracks the Kafka client migration independently from the parallel processing and codec changes in #6286. The existing command-line interface should remain usable.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named; start by locating the Kafka consumer utility and its confluent-kafka-go usage, then trace the existing CLI flags and consumption loop. Done means the utility uses a Go Kafka client while preserving manual commits, earliest reset, range assignment, TLS flags, CLI usability, and prompt cancellation while idle.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kafka
Domain
cli, stream-processing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.