This did come up in the discussion in KAFKA-1902. It is somewhat concerning that something very specific - in this case (what I think is a limitation [1]) in certain metric reporters should drive the decision on what constitutes a legal topic name in Kafka - especially when all the characters in question actually seem reasonable in a topic name.
I'm guessing this is not a popular choice simply because these metric systems are actually popular, but my preference would be to do nothing here and these users should just avoid such characters in topics. [1] https://issues.apache.org/jira/browse/KAFKA-1902?focusedCommentId=14294733&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14294733 On Mon, Jul 13, 2015 at 07:40:17AM -0700, Jun Rao wrote: > Magnus, > > Converting dot to _ essentially is our way of escaping in the scope part of > the metric name. The issue is that your options of escaping is limited due > to the constraints in the reporters. For example, the Ganglia reporter > replaces anything other than alpha-numeric, -, _ and dot to _ in the metric > name. Not sure how well Graphite deals with \ either. For details, take a > look at the discussion in KAFKA-1902. Note that the replacement of dots > only affects the reporters. Dots are preserved in the mbean names. > > Thanks, > > Jun > > On Sun, Jul 12, 2015 at 10:58 PM, Magnus Edenhill <mag...@edenhill.se> > wrote: > > > Hi, > > > > since dots seem to be a problem on the metrics side, why not let the > > metrics side handle it > > by escaping troublesome characters? E.g. "foo.my\.topic.feh" > > Let's not push the problem upstream. > > > > Replacing "." with another set of allowed characters "__" seems like a bad > > idea since it > > is ambigious: "__consumer_offsets" == ".consumer_offsets"? > > > > I'm guessing the same problem arises if broker names are part of the > > metrics name, > > e.g., "broker.192.168.0.2.rxbytes", do we want to push the exclusion of > > dots in IP addresses > > upstream as well? :) > > > > Magnus > > > > > > 2015-07-13 2:06 GMT+02:00 Jun Rao <j...@confluent.io>: > > > > > First, a couple of clarifications on this. > > > > > > 1. Currently, we allow Kafka topic to have dots, except that we disallow > > > topic names that are exactly "." or ".." (which can cause weird problems > > > when mapping to file directories and ZK paths as Gwen pointed out). > > > > > > 2. When creating the Coda Hale metrics, currently, we only replace dot > > with > > > _ in the scope of the metric name. The actually jmx bean name still > > > preserves dot. This is because the Graphite reporter uses scope when > > > forming the metric names and assumes dots are component separators (see > > > KAFKA-1902 for details). So, if one uses tools like jmxtrans to export > > the > > > metrics from the mbeans directly, the original topic name is preserved. > > > However, I am not sure how well this maps to Graphite. We thought about > > > making the replacing character configurable. However, the difficulty is > > > that the logic of doing the replacement is in a singleton > > > class KafkaMetricsGroup and I am not sure if we can pass in an external > > > config. > > > > > > Given the above, I'd suggest that customer try the jmxtrans to Graphite > > > path and see if that helps. I agree that it's too disruptive to restrict > > > the current topic naming convention. > > > > > > Also, since we plan to replace Coda Hale metrics with Kafka metrics in > > the > > > future, we can try to address this issue better then. > > > > > > Thanks, > > > > > > Jun > > > > > > > > > > > > > > > On Sun, Jul 12, 2015 at 10:26 AM, Gwen Shapira <gshap...@cloudera.com> > > > wrote: > > > > > > > I like the "lets warn people of conflicts when creating the topic" > > > > suggestion. IMO, automatic topic creation as currently done is buggy > > > > either way (Send data and hope the topic is ready before retries run > > > > out, potentially failing with the super helpful NO_LEADER error), so I > > > > don't mind leaving it broken a bit more. I think the right behavior is > > > > that conflicts will cause auto creating to fail, the same way we > > > > currently do when the default number of replicas is higher than number > > > > of brokers. > > > > > > > > One thing that is left confusing is that people in the "." camp need > > > > to know about the conversion or they will fail to find their topics in > > > > their monitoring tools. Not very nice to them, but I can't think of > > > > alternatives. > > > > > > > > I'll start with the doc patch :) > > > > > > > > On Sat, Jul 11, 2015 at 12:54 AM, Ewen Cheslack-Postava > > > > <e...@confluent.io> wrote: > > > > > On Fri, Jul 10, 2015 at 4:41 PM, Gwen Shapira <gshap...@cloudera.com > > > > > > > wrote: > > > > > > > > > >> Yeah, I have an actual customer who ran into this. Unfortunately, > > > > >> inconsistencies in the way things are named are pretty common - just > > > > >> look at Kafka's many CLI options. > > > > >> > > > > >> I don't think that supporting both and pointing at the docs with "I > > > > >> told you so" when our metrics break is a good solution. > > > > >> > > > > > > > > > > I agree, especially since we don't *already* have something in the > > docs > > > > > indicating this will be an issue. I was flippant about the situation > > > > > because I *wish* there was more careful consideration + naming policy > > > in > > > > > place, but I realize that doesn't always happen in practice. I guess > > I > > > > need > > > > > to take Compatibility Czar more seriously :) > > > > > > > > > > I see think the obvious practical options are as follows: > > > > > > > > > > 1. Kill support for "_". Piss off the entire set of people who > > > currently > > > > > use "_" anywhere in topic names. > > > > > 2. Kill support for ".". Piss off the entire set of people who > > > currently > > > > > use "." anywhere in topic names. > > > > > 3. Tell people they need to be careful about this issue. Piss off the > > > set > > > > > of people who use both "_" and "." *and* happen to have conflicting > > > topic > > > > > names. They will have some pain when they discover the issue and have > > > to > > > > > figure out how to move one of those topics over to a non-conflicting > > > > name. > > > > > I'm going to claim that this group must be an *extremely* small > > > fraction > > > > of > > > > > users, which doesn't make it better to allow things to break for > > them, > > > > but > > > > > at least gives us an idea of the scale of impact. > > > > > > > > > > (One other alternative suggested earlier was encoding metric names to > > > > > account for differences; given the metric renaming mess in the last > > > > > release, I'm extremely hesitant to suggest anything of the sort...) > > > > > > > > > > None of the options are ideal, but to me, 3 seems like the least > > > painful. > > > > > Both for us, and for the vast majority of users. It seems to me that > > > the > > > > > number of users that would complain about (1) or (2) drastically > > > outweigh > > > > > (3). > > > > > > > > > > At this point, I don't think it's practical to keep switching the > > rules > > > > > about which characters are allowed and which aren't because the > > > previous > > > > > attempts haven't been successful -- it seems the rules have changed > > > > > multiple times, whether intentionally or accidentally, such that any > > > more > > > > > changes will cause problems. At this point, I think we just need to > > > > accept > > > > > being liberal in accepting the range of topic names that have been > > > > > permitted so far and make the best of the situation, even if it means > > > > only > > > > > being able to warn people of conflicts. > > > > > > > > > > Here's another alternative: how about being liberal with topic name > > > > > characters, but upon topic creation we convert the name to the metric > > > > name > > > > > and fail if there's a conflict with another topic? This is relatively > > > > > expensive (requires getting the metric name of all other topics), but > > > it > > > > > avoids the bad situation we're encountering here (conflicting > > metrics), > > > > > avoids getting into a persistent conflict (we kill topic creation > > when > > > we > > > > > detect the issue rather than noticing it when the metrics conflict > > > > > happens), and keeps the vast majority of existing users happy (both _ > > > > and . > > > > > work in topic names as long as you don't create topics with > > conflicting > > > > > metric names). > > > > > > > > > > There are definitely details to be worked out (auto topic creation?), > > > but > > > > > it seems like a more realistic solution than to start disallowing _ > > or > > > . > > > > in > > > > > topic names. > > > > > > > > > > -Ewen > > > > > > > > > > > > > > >> > > > > >> On Fri, Jul 10, 2015 at 4:33 PM, Ewen Cheslack-Postava > > > > >> <e...@confluent.io> wrote: > > > > >> > I figure you'll probably see complaints no matter what change you > > > > make. > > > > >> > Gwen, given that you raised this, another important question might > > > be > > > > how > > > > >> > many people you see using *both*. I'm guessing this question came > > up > > > > >> > because you actually saw a conflict? But I'd imagine (or at least > > > > hope) > > > > >> > that most organizations are mostly consistent about naming topics > > -- > > > > they > > > > >> > standardize on one or the other. > > > > >> > > > > > >> > Since there's no "right" way to name them, I'd just leave it > > > > supporting > > > > >> > both and document the potential conflict in metrics. And if people > > > use > > > > >> both > > > > >> > naming schemes, they probably deserve to suffer for their > > > > inconsistency > > > > >> :) > > > > >> > > > > > >> > -Ewen > > > > >> > > > > > >> > On Fri, Jul 10, 2015 at 3:28 PM, Gwen Shapira < > > > gshap...@cloudera.com> > > > > >> wrote: > > > > >> > > > > > >> >> I find dots more common in my customer base, so I will definitely > > > > feel > > > > >> >> the pain of removing them. > > > > >> >> > > > > >> >> However, "." are already used in metrics, file names, > > directories, > > > > etc > > > > >> >> - so if we keep the dots, we need to keep code that translates > > them > > > > >> >> and document the translation. Just banning "." seems more > > natural. > > > > >> >> Also, as Grant mentioned, we'll probably have our own special > > usage > > > > >> >> for "." down the line. > > > > >> >> > > > > >> >> On Fri, Jul 10, 2015 at 2:12 PM, Todd Palino <tpal...@gmail.com> > > > > wrote: > > > > >> >> > I absolutely disagree with #2, Neha. That will break a lot of > > > > >> >> > infrastructure within LinkedIn. That said, removing "." might > > > break > > > > >> other > > > > >> >> > people as well, but I think we should have a clearer idea of > > how > > > > much > > > > >> >> usage > > > > >> >> > there is on either side. > > > > >> >> > > > > > >> >> > -Todd > > > > >> >> > > > > > >> >> > > > > > >> >> > On Fri, Jul 10, 2015 at 2:08 PM, Neha Narkhede < > > > n...@confluent.io> > > > > >> >> wrote: > > > > >> >> > > > > > >> >> >> "." seems natural for grouping topic names. +1 for 2) going > > > > forward > > > > >> only > > > > >> >> >> without breaking previously created topics with "_" though > > that > > > > might > > > > >> >> >> require us to patch the code somewhat awkwardly till we phase > > it > > > > out > > > > >> a > > > > >> >> >> couple (purposely left vague to stay out of Ewen's wrath :-)) > > > > >> versions > > > > >> >> >> later. > > > > >> >> >> > > > > >> >> >> On Fri, Jul 10, 2015 at 2:02 PM, Gwen Shapira < > > > > gshap...@cloudera.com > > > > >> > > > > > >> >> >> wrote: > > > > >> >> >> > > > > >> >> >> > I don't think we should break existing topics. Just disallow > > > new > > > > >> >> >> > topics going forward. > > > > >> >> >> > > > > > >> >> >> > Agree that having both is horrible, but we should have a > > > > solution > > > > >> that > > > > >> >> >> > fails when you run "kafka_topics.sh --create", not when you > > > > >> configure > > > > >> >> >> > Ganglia. > > > > >> >> >> > > > > > >> >> >> > Gwen > > > > >> >> >> > > > > > >> >> >> > On Fri, Jul 10, 2015 at 1:53 PM, Jay Kreps < > > j...@confluent.io> > > > > >> wrote: > > > > >> >> >> > > Unfortunately '.' is pretty common too. I agree that it is > > > > >> perverse, > > > > >> >> >> but > > > > >> >> >> > > people seem to do it. Breaking all the topics with '.' in > > > the > > > > >> name > > > > >> >> >> seems > > > > >> >> >> > > like it could be worse than combining metrics for people > > who > > > > >> have a > > > > >> >> >> > > 'foo_bar' AND 'foo.bar' (and after all, having both is > > > DEEPLY > > > > >> >> perverse, > > > > >> >> >> > > no?). > > > > >> >> >> > > > > > > >> >> >> > > Where is our Dean of Compatibility, Ewen, on this? > > > > >> >> >> > > > > > > >> >> >> > > -Jay > > > > >> >> >> > > > > > > >> >> >> > > On Fri, Jul 10, 2015 at 1:32 PM, Todd Palino < > > > > tpal...@gmail.com> > > > > >> >> >> wrote: > > > > >> >> >> > > > > > > >> >> >> > >> My selfish point of view is that we do #1, as we use "_" > > > > >> >> extensively > > > > >> >> >> in > > > > >> >> >> > >> topic names here :) I also happen to think it's the right > > > > >> choice, > > > > >> >> >> > >> specifically because "." has more special meanings, as > > you > > > > >> noted. > > > > >> >> >> > >> > > > > >> >> >> > >> -Todd > > > > >> >> >> > >> > > > > >> >> >> > >> > > > > >> >> >> > >> On Fri, Jul 10, 2015 at 1:30 PM, Gwen Shapira < > > > > >> >> gshap...@cloudera.com> > > > > >> >> >> > >> wrote: > > > > >> >> >> > >> > > > > >> >> >> > >> > Unintentional side effect from allowing IP addresses in > > > > >> consumer > > > > >> >> >> > client > > > > >> >> >> > >> > IDs :) > > > > >> >> >> > >> > > > > > >> >> >> > >> > So the question is, what do we do now? > > > > >> >> >> > >> > > > > > >> >> >> > >> > 1) disallow "." > > > > >> >> >> > >> > 2) disallow "_" > > > > >> >> >> > >> > 3) find a reversible way to encode "." and "_" that > > won't > > > > >> break > > > > >> >> >> > existing > > > > >> >> >> > >> > metrics > > > > >> >> >> > >> > 4) all of the above? > > > > >> >> >> > >> > > > > > >> >> >> > >> > btw. it looks like "." and ".." are currently valid. > > > Topic > > > > >> names > > > > >> >> are > > > > >> >> >> > >> > used for directories, right? this sounds like fun :) > > > > >> >> >> > >> > > > > > >> >> >> > >> > I vote for option #1, although if someone has a good > > idea > > > > for > > > > >> #3 > > > > >> >> it > > > > >> >> >> > >> > will be even better. > > > > >> >> >> > >> > > > > > >> >> >> > >> > Gwen > > > > >> >> >> > >> > > > > > >> >> >> > >> > > > > > >> >> >> > >> > > > > > >> >> >> > >> > On Fri, Jul 10, 2015 at 1:22 PM, Grant Henke < > > > > >> >> ghe...@cloudera.com> > > > > >> >> >> > >> wrote: > > > > >> >> >> > >> > > Found it was added here: > > > > >> >> >> > >> https://issues.apache.org/jira/browse/KAFKA-697 > > > > >> >> >> > >> > > > > > > >> >> >> > >> > > On Fri, Jul 10, 2015 at 3:18 PM, Todd Palino < > > > > >> >> tpal...@gmail.com> > > > > >> >> >> > >> wrote: > > > > >> >> >> > >> > > > > > > >> >> >> > >> > >> This was definitely changed at some point after > > > > KAFKA-495. > > > > >> The > > > > >> >> >> > >> question > > > > >> >> >> > >> > is > > > > >> >> >> > >> > >> when and why. > > > > >> >> >> > >> > >> > > > > >> >> >> > >> > >> Here's the relevant code from that patch: > > > > >> >> >> > >> > >> > > > > >> >> >> > >> > >> > > > > >> >> >> > > > > =================================================================== > > > > >> >> >> > >> > >> --- core/src/main/scala/kafka/utils/Topic.scala > > > > (revision > > > > >> >> >> 1390178) > > > > >> >> >> > >> > >> +++ core/src/main/scala/kafka/utils/Topic.scala > > > (working > > > > >> copy) > > > > >> >> >> > >> > >> @@ -21,24 +21,21 @@ > > > > >> >> >> > >> > >> import util.matching.Regex > > > > >> >> >> > >> > >> > > > > >> >> >> > >> > >> object Topic { > > > > >> >> >> > >> > >> + val legalChars = "[a-zA-Z0-9_-]" > > > > >> >> >> > >> > >> > > > > >> >> >> > >> > >> > > > > >> >> >> > >> > >> > > > > >> >> >> > >> > >> -Todd > > > > >> >> >> > >> > >> > > > > >> >> >> > >> > >> > > > > >> >> >> > >> > >> On Fri, Jul 10, 2015 at 1:02 PM, Grant Henke < > > > > >> >> >> ghe...@cloudera.com> > > > > >> >> >> > >> > wrote: > > > > >> >> >> > >> > >> > > > > >> >> >> > >> > >> > kafka.common.Topic shows that currently period is > > a > > > > valid > > > > >> >> >> > character > > > > >> >> >> > >> > and I > > > > >> >> >> > >> > >> > have verified I can use kafka-topics.sh to create > > a > > > > new > > > > >> >> topic > > > > >> >> >> > with a > > > > >> >> >> > >> > >> > period. > > > > >> >> >> > >> > >> > > > > > >> >> >> > >> > >> > > > > > >> >> >> > >> > >> > > > > > AdminUtils.createOrUpdateTopicPartitionAssignmentPathInZK > > > > >> >> >> > currently > > > > >> >> >> > >> > uses > > > > >> >> >> > >> > >> > Topic.validate before writing to Zookeeper. > > > > >> >> >> > >> > >> > > > > > >> >> >> > >> > >> > Should period character support be removed? I was > > > > under > > > > >> the > > > > >> >> >> same > > > > >> >> >> > >> > >> impression > > > > >> >> >> > >> > >> > as Gwen, that a period was used by many as a way > > to > > > > >> "group" > > > > >> >> >> > topics. > > > > >> >> >> > >> > >> > > > > > >> >> >> > >> > >> > The code is pasted below since its small: > > > > >> >> >> > >> > >> > > > > > >> >> >> > >> > >> > object Topic { > > > > >> >> >> > >> > >> > val legalChars = "[a-zA-Z0-9\\._\\-]" > > > > >> >> >> > >> > >> > private val maxNameLength = 255 > > > > >> >> >> > >> > >> > private val rgx = new Regex(legalChars + "+") > > > > >> >> >> > >> > >> > > > > > >> >> >> > >> > >> > val InternalTopics = > > > > >> Set(OffsetManager.OffsetsTopicName) > > > > >> >> >> > >> > >> > > > > > >> >> >> > >> > >> > def validate(topic: String) { > > > > >> >> >> > >> > >> > if (topic.length <= 0) > > > > >> >> >> > >> > >> > throw new InvalidTopicException("topic name > > is > > > > >> >> illegal, > > > > >> >> >> > can't > > > > >> >> >> > >> be > > > > >> >> >> > >> > >> > empty") > > > > >> >> >> > >> > >> > else if (topic.equals(".") || > > > topic.equals("..")) > > > > >> >> >> > >> > >> > throw new InvalidTopicException("topic name > > > > cannot > > > > >> be > > > > >> >> >> > \".\" or > > > > >> >> >> > >> > >> > \"..\"") > > > > >> >> >> > >> > >> > else if (topic.length > maxNameLength) > > > > >> >> >> > >> > >> > throw new InvalidTopicException("topic name > > is > > > > >> >> illegal, > > > > >> >> >> > can't > > > > >> >> >> > >> be > > > > >> >> >> > >> > >> > longer than " + maxNameLength + " characters") > > > > >> >> >> > >> > >> > > > > > >> >> >> > >> > >> > rgx.findFirstIn(topic) match { > > > > >> >> >> > >> > >> > case Some(t) => > > > > >> >> >> > >> > >> > if (!t.equals(topic)) > > > > >> >> >> > >> > >> > throw new InvalidTopicException("topic > > > name > > > > " + > > > > >> >> topic > > > > >> >> >> > + " > > > > >> >> >> > >> is > > > > >> >> >> > >> > >> > illegal, contains a character other than ASCII > > > > >> >> alphanumerics, > > > > >> >> >> > '.', > > > > >> >> >> > >> '_' > > > > >> >> >> > >> > >> and > > > > >> >> >> > >> > >> > '-'") > > > > >> >> >> > >> > >> > case None => throw new > > > > InvalidTopicException("topic > > > > >> >> name > > > > >> >> >> " > > > > >> >> >> > + > > > > >> >> >> > >> > topic > > > > >> >> >> > >> > >> + > > > > >> >> >> > >> > >> > " is illegal, contains a character other than > > ASCII > > > > >> >> >> > alphanumerics, > > > > >> >> >> > >> > '.', > > > > >> >> >> > >> > >> > '_' and '-'") > > > > >> >> >> > >> > >> > } > > > > >> >> >> > >> > >> > } > > > > >> >> >> > >> > >> > } > > > > >> >> >> > >> > >> > > > > > >> >> >> > >> > >> > On Fri, Jul 10, 2015 at 2:50 PM, Todd Palino < > > > > >> >> >> tpal...@gmail.com> > > > > >> >> >> > >> > wrote: > > > > >> >> >> > >> > >> > > > > > >> >> >> > >> > >> > > I had to go look this one up again to make sure > > - > > > > >> >> >> > >> > >> > > https://issues.apache.org/jira/browse/KAFKA-495 > > > > >> >> >> > >> > >> > > > > > > >> >> >> > >> > >> > > The only valid character names for topics are > > > > >> >> alphanumeric, > > > > >> >> >> > >> > underscore, > > > > >> >> >> > >> > >> > and > > > > >> >> >> > >> > >> > > dash. A period is not supposed to be a valid > > > > character > > > > >> to > > > > >> >> >> use. > > > > >> >> >> > If > > > > >> >> >> > >> > >> you're > > > > >> >> >> > >> > >> > > seeing them, then one of two things have > > happened: > > > > >> >> >> > >> > >> > > > > > > >> >> >> > >> > >> > > 1) You have topic names that are grandfathered > > in > > > > from > > > > >> >> before > > > > >> >> >> > that > > > > >> >> >> > >> > >> patch > > > > >> >> >> > >> > >> > > 2) The patch is not working properly and there > > is > > > > >> >> somewhere > > > > >> >> >> in > > > > >> >> >> > the > > > > >> >> >> > >> > >> broker > > > > >> >> >> > >> > >> > > that the standard is not being enforced. > > > > >> >> >> > >> > >> > > > > > > >> >> >> > >> > >> > > -Todd > > > > >> >> >> > >> > >> > > > > > > >> >> >> > >> > >> > > > > > > >> >> >> > >> > >> > > On Fri, Jul 10, 2015 at 12:13 PM, Brock Noland < > > > > >> >> >> > br...@apache.org> > > > > >> >> >> > >> > >> wrote: > > > > >> >> >> > >> > >> > > > > > > >> >> >> > >> > >> > > > On Fri, Jul 10, 2015 at 11:34 AM, Gwen > > Shapira < > > > > >> >> >> > >> > >> gshap...@cloudera.com> > > > > >> >> >> > >> > >> > > > wrote: > > > > >> >> >> > >> > >> > > > > Hi Kafka Fans, > > > > >> >> >> > >> > >> > > > > > > > > >> >> >> > >> > >> > > > > If you have one topic named "kafka_lab_2" > > and > > > > the > > > > >> >> other > > > > >> >> >> > named > > > > >> >> >> > >> > >> > > > > "kafka.lab.2", the topic level metrics will > > be > > > > >> named > > > > >> >> >> > >> kafka_lab_2 > > > > >> >> >> > >> > >> for > > > > >> >> >> > >> > >> > > > > both, effectively making it impossible to > > > > monitor > > > > >> them > > > > >> >> >> > >> properly. > > > > >> >> >> > >> > >> > > > > > > > > >> >> >> > >> > >> > > > > The reason this happens is that using "." in > > > > topic > > > > >> >> names > > > > >> >> >> is > > > > >> >> >> > >> > pretty > > > > >> >> >> > >> > >> > > > > common, especially as a way to group topics > > > into > > > > >> data > > > > >> >> >> > centers, > > > > >> >> >> > >> > >> > > > > relevant apps, etc - basically a work-around > > > to > > > > our > > > > >> >> >> current > > > > >> >> >> > >> > lack of > > > > >> >> >> > >> > >> > > > > name spaces. However, most metric monitoring > > > > >> systems > > > > >> >> >> using > > > > >> >> >> > "." > > > > >> >> >> > >> > to > > > > >> >> >> > >> > >> > > > > annotate hierarchy, so to avoid issues > > around > > > > >> metric > > > > >> >> >> names, > > > > >> >> >> > >> > Kafka > > > > >> >> >> > >> > >> > > > > replaces the "." in the name with an > > > underscore. > > > > >> >> >> > >> > >> > > > > > > > > >> >> >> > >> > >> > > > > This generates good metric names, but > > creates > > > > the > > > > >> >> problem > > > > >> >> >> > with > > > > >> >> >> > >> > name > > > > >> >> >> > >> > >> > > > collisions. > > > > >> >> >> > >> > >> > > > > > > > > >> >> >> > >> > >> > > > > I'm wondering if it makes sense to simply > > > limit > > > > the > > > > >> >> range > > > > >> >> >> > of > > > > >> >> >> > >> > >> > > > > characters permitted in a topic name and > > > > disallow > > > > >> "_"? > > > > >> >> >> > >> Obviously > > > > >> >> >> > >> > >> > > > > existing topics will need to remain as is, > > > which > > > > >> is a > > > > >> >> bit > > > > >> >> >> > >> > awkward. > > > > >> >> >> > >> > >> > > > > > > > >> >> >> > >> > >> > > > Interesting problem! Many if not most users I > > > > >> >> personally am > > > > >> >> >> > >> aware > > > > >> >> >> > >> > of > > > > >> >> >> > >> > >> > > > use "_" as a separator in topic names. I am > > sure > > > > that > > > > >> >> many > > > > >> >> >> > users > > > > >> >> >> > >> > >> would > > > > >> >> >> > >> > >> > > > be quite surprised by this limitation. With > > that > > > > >> said, > > > > >> >> I am > > > > >> >> >> > sure > > > > >> >> >> > >> > >> > > > they'd transition accordingly. > > > > >> >> >> > >> > >> > > > > > > > >> >> >> > >> > >> > > > > > > > > >> >> >> > >> > >> > > > > If anyone has better backward-compatible > > > > solutions > > > > >> to > > > > >> >> >> this, > > > > >> >> >> > >> I'm > > > > >> >> >> > >> > all > > > > >> >> >> > >> > >> > > ears > > > > >> >> >> > >> > >> > > > :) > > > > >> >> >> > >> > >> > > > > > > > > >> >> >> > >> > >> > > > > Gwen > > > > >> >> >> > >> > >> > > > > > > > >> >> >> > >> > >> > > > > > > >> >> >> > >> > >> > > > > > >> >> >> > >> > >> > > > > > >> >> >> > >> > >> > > > > > >> >> >> > >> > >> > -- > > > > >> >> >> > >> > >> > Grant Henke > > > > >> >> >> > >> > >> > Solutions Consultant | Cloudera > > > > >> >> >> > >> > >> > ghe...@cloudera.com | twitter.com/gchenke | > > > > >> >> >> > >> > linkedin.com/in/granthenke > > > > >> >> >> > >> > >> > > > > > >> >> >> > >> > >> > > > > >> >> >> > >> > > > > > > >> >> >> > >> > > > > > > >> >> >> > >> > > > > > > >> >> >> > >> > > -- > > > > >> >> >> > >> > > Grant Henke > > > > >> >> >> > >> > > Solutions Consultant | Cloudera > > > > >> >> >> > >> > > ghe...@cloudera.com | twitter.com/gchenke | > > > > >> >> >> > linkedin.com/in/granthenke > > > > >> >> >> > >> > > > > > >> >> >> > >> > > > > >> >> >> > > > > > >> >> >> > > > > >> >> >> > > > > >> >> >> > > > > >> >> >> -- > > > > >> >> >> Thanks, > > > > >> >> >> Neha > > > > >> >> >> > > > > >> >> > > > > >> > > > > > >> > > > > > >> > > > > > >> > -- > > > > >> > Thanks, > > > > >> > Ewen > > > > >> > > > > > > > > > > > > > > > > > > > > -- > > > > > Thanks, > > > > > Ewen > > > > > > >