Hello developers,
I’m proposing KIP-619 to add internal topic creation support.
Kafka and its upstream applications treat internal topics differently from
non-internal topics. For example:
• Kafka handles topic creation response errors differently for internal
topics
• Internal topic partitions cannot be added to a transaction
• Internal topic records cannot be deleted
• Appending to internal topics might get rejected
• ……
Clients and upstream applications may define their own internal topics. For
example, Kafka Connect defines `connect-configs`, `connect-offsets`, and
`connect-statuses`. Clients are fetching the internal topics by sending the
MetadataRequest (ApiKeys.METADATA).
However, clients and upstream application cannot register their own internal
topics in servers. As a result, servers have no knowledge about client-defined
internal topics. They can only test if a given topic is internal or not simply
by checking against a static set of internal topic string, which consists of
two internal topic names `__consumer_offsets` and `__transaction_state`. As a
result, MetadataRequest cannot provide any information about client created
internal topics.
To solve this pain point, I'm proposing support for clients to register and
query their own internal topics.
Please feel free to join the discussion. Thanks in advance.
Best, - Cheng Tan