[ 
https://issues.apache.org/jira/browse/KAFKA-5009?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955544#comment-15955544
 ] 

Matthias J. Sax edited comment on KAFKA-5009 at 4/4/17 6:16 PM:
----------------------------------------------------------------

All topics generated by Kafka Streams are prefixed with {{application.id}} -- 
thus, multiple Kafka Streams instances should not conflict on topic names -- 
topic names should be globally unique already. Can you explain in more detail 
what conflicts you did observe? I am also not sure, who this would related to 
Confluent Schema Registry?


was (Author: mjsax):
All topics generated by Kafka Streams are prefixed with {{application.id}} -- 
thus, multiple Kafka Streams instances should not conflict on topic names. Can 
you explain in more detail what conflicts you did observe? I am also not sure, 
who this would related to Confluent Schema Registry?

> Globally Unique internal topic names when using Joins 
> ------------------------------------------------------
>
>                 Key: KAFKA-5009
>                 URL: https://issues.apache.org/jira/browse/KAFKA-5009
>             Project: Kafka
>          Issue Type: Improvement
>          Components: streams
>            Reporter: Mark Tranter
>
> We are using multiple different Kafka Streams applications on the back of a 
> single kafka cluster. This allows each micro-service in our enterprise to 
> consume & process kafka data to suit its own needs.
> Currently when joining streams, an internal topic is created & named using 
> KStreamsBuilder.newName(prefix);
> ```
>             String thisWindowStreamName = topology.newName(WINDOWED_NAME);
>             String otherWindowStreamName = topology.newName(WINDOWED_NAME);
>             String joinThisName = rightOuter ? 
> topology.newName(OUTERTHIS_NAME) : topology.newName(JOINTHIS_NAME);
>             String joinOtherName = leftOuter ? 
> topology.newName(OUTEROTHER_NAME) : topology.newName(JOINOTHER_NAME);
>             String joinMergeName = topology.newName(MERGE_NAME);
> ```
> This prefix is a constant, and internally an incrementor is used to generate 
> a  unique (per KStreamBuilder instance) topic name for the topic.
> In situations where multiple KStreamBuilders are in use (for example, 
> multiple different Kafka Streams applications) we are seeing collisions in 
> topic names.
> Perhaps the join() methods should take a topic prefix overload to allow 
> developers to provide unique names for these topics. Similar to the way other 
> stateful processors work when having to provide a store name.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to