Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Internal topic creation will be allowed.
  2. Internal topic deletion will be allowed except for` __consumer_offsets` and `__transaction_state`.
  3. Producing to internal topic partitions other than `__consumer_offsets` and `__transaction_state` will be allowed.
  4. Adding internal topics to transactions will be allowed.

Post ZK world

KIP-500 proposed metadata quorum. Since the changes proposed in this KIP interact directly with KafkaApi instead of Zookeeper and modifies the cached metadata, it should be easily migrated in 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

  1. Specify a naming convention that all internal topic should start with the prefix `_`.
    1. It's hard to make all clients adjust their topic names.
  2. 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`.
    1. May require a new flag in TopicCommand