Skip to content

Conversation

@jiafu1115
Copy link
Contributor

No description provided.

@github-actions github-actions bot added triage PRs from the community core Kafka Broker storage Pull requests that target the storage module tiered-storage Related to the Tiered Storage feature clients small Small PRs labels Nov 4, 2025
@AndrewJSchofield AndrewJSchofield added kip Requires or implements a KIP and removed triage PRs from the community labels Nov 4, 2025
public static final String LEGAL_CHARS = "[a-zA-Z0-9._-]";

private static final Set<String> INTERNAL_TOPICS = Set.of(GROUP_METADATA_TOPIC_NAME, TRANSACTION_STATE_TOPIC_NAME, SHARE_GROUP_STATE_TOPIC_NAME);
private static final Set<String> INTERNAL_TOPICS = Set.of(GROUP_METADATA_TOPIC_NAME, TRANSACTION_STATE_TOPIC_NAME, SHARE_GROUP_STATE_TOPIC_NAME, REMOTE_LOG_METADATA_TOPIC_NAME);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe internal topics are those fundamental to kafka's core and are handled uniquely, not via standard producer/consumer logic. Therefore, REMOTE_LOG_METADATA_TOPIC_NAME is similar to connector topics rather than an internal topic

@AndrewJSchofield @jiafu1115 WDYT?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You may be correct, but I think the main difference is that internal topics are filtered out of listing topics by default. I do think that we need to tread carefully here. If there is any doubt about making this an internal topic, we should not do it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AndrewJSchofield @chia7712 I agree. I just created this PR as an example to show what the code changes would look like if we decided to proceed. I think we can leave it here for future discussion: It involve how we define the internal topic: not allow to see or not allow to be write by standard producer.
Thanks

sendResponseCallback(Map.empty)
else {
val internalTopicsAllowed = request.header.clientId == "__admin_client"
val internalTopicsAllowed = request.header.clientId != null && request.header.clientId.startsWith("__")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should not touch this "backdoor" - I have posted a discussion on the https://issues.apache.org/jira/browse/KAFKA-5246

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clients core Kafka Broker kip Requires or implements a KIP small Small PRs storage Pull requests that target the storage module tiered-storage Related to the Tiered Storage feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants