Versions Compared

Key

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

...

No changes to public interfaces will be made in this release. However, it may be dangerous to use older versions of Kafka tools with new broker versions when using their --zookeeper flags.

Proposed Changes

Topic IDs will be represented using 64 bit v4 UUIDs. A UUID with all bits 0 will be reserved as a null UUID, as the Kafka RPC protocol does not allow for nullable fields. When printed or stored as a string, topic IDs will be converted to base64 string representation.

On handling a CreateTopicRequest, the broker will create the topic znode under /brokers/topics/[topic], as usual.

The znode value will now contain the topic ID for the topic, represented as a base64 string in the "id" field, and the schema version will be bumped to version 23.

Schema:
{ "fields" :
    [ {"name": "version", "type": "int", "id": "UUID", "doc": "version id"},
      {"name": "partitions",
       "type": {"type": "map",
                "values": {"type": "array", "items": "int", "doc": "a list of replica ids"},
                "doc": "a map from partition id to replica list"},
      }
    ]
}
 
Example:
{
  "version": 3,
  "id": "b8tRS7h4TJ2Vt43Dp85v2A",
  "partitions": {"0": [0, 1, 3] }
}

...