...
- Internal topic creation will be allowed.
- Internal topic deletion will be allowed except for` __consumer_offsets` and `__transaction_state`.
- Producing to internal topic partitions other than `__consumer_offsets` and `__transaction_state` will be allowed.
- Adding internal topics to transactions will be allowed.
Post ZK world
Client-side:
To get the internal topic information, instead of using the static internal topic testing or implementing their own logic, clients can utilize KafkaAdminClients and make a MetadataRequest (ApiKey.METADATA).
Compatibility, Deprecation, and Migration Plan
There are no compatibility concerns in this KIPIn the current version, users might create a topic with the configuration internal = true. After the changes in this proposal got adopted, the semantic of this configuration will change and might break the expected behavior.
Rejected Alternatives
- Specify a naming convention that all internal topic should start with the prefix `_`.
- It's hard to make all clients adjust their topic names.
- Change several public APIs to make the clients pass a flag indicating if the topic is internal or not when it creates a topic. Add a new ZK path such as `topics/internal`.
- May require a new flag in TopicCommand