Jonah Hooper created KAFKA-20097:
------------------------------------
Summary: CREATE_TOPIC returns topic information if topic already
exists
Key: KAFKA-20097
URL: https://issues.apache.org/jira/browse/KAFKA-20097
Project: Kafka
Issue Type: Improvement
Reporter: Jonah Hooper
CREATE_TOPICS request currently checks whether a topic already exists before
creating one. If a topic with the same name already exists, it will return a
[TOPIC_ALREADY_EXISTS|https://github.com/apache/kafka/blob/62206cfc5461629818a34723fee7817b369a6f7e/clients/src/main/java/org/apache/kafka/common/protocol/Errors.java#L256]
error code. No other information in the
[CreateTopicsResponse|https://github.com/apache/kafka/blob/62206cfc5461629818a34723fee7817b369a6f7e/clients/src/main/resources/common/message/CreateTopicsResponse.json#L42]
is set if this topic already exists.
Some clients, may wish to create a topic and then do further work with the some
information contained within the CreateTopicsResponse. If the client does not
receive the `CreateTopicsResponse` (for example, do to a network disconnect),
they may issue another request to create the topics. Since the topics already
exist, they will receive `TOPIC_ALREADY_EXISTS` and no other information about
the topic. Hence a further `METADATA_REQUEST` will need to be issued to
discover the topicId (to be used for other requests).
To improve convenience, kafka should fill in the
[CreateableTopicResult|https://github.com/apache/kafka/blob/62206cfc5461629818a34723fee7817b369a6f7e/clients/src/main/resources/common/message/CreateTopicsResponse.json#L42]
if a topic already exists. Callers then do not need to issue another request
for metadata. This would make writing clients a bit simpler.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)