On Wed, Aug 07, 2019 at 9:50 AM, Colin McCabe <co...@cmccabe.xyz> wrote:
> On Wed, Aug 7, 2019, at 09:24, Harsha Ch wrote: > > On Tue, Aug 06, 2019 at 11:46 PM, Colin McCabe < cmcc...@apache.org > > wrote: > > On Tue, Aug 6, 2019, at 21:38, Harsha Ch wrote: > > Hi Colin, > "Hmm... I'm not sure I follow. Users don't have to build their own > tooling, right? They can use any of the shell scripts that we've shipped in > the last few releases. For example, if any of your users run it, this shell > script will delete all of the topics from your non-security-enabled > cluster: > > ./ bin/ kafka-topics. sh ( http://bin/kafka-topics.sh ) > --bootstrap-server localhost:9092 --list 2>/dev/null > | xargs -l ./ bin/ kafka-topics. sh ( http://bin/kafka-topics.sh ) > --bootstrap-server localhost:9092 --delete > --topic > > They will need to fill in the correct bootstrap servers list, of course, > not localhost. This deletion script will work on some pretty old brokers, > even back to the 0.10 releases. It seems a little odd to trust your users > with this power, but not trust them to avoid changing a particular > configuration key." > > The above will blocked by the server if we set delete.topic.enable to > false and thats exactly what I am asking for. > > Hi Harsha, > > I was wondering if someone was going to bring up that configuration :) > > it's an interesting complication, but globally disabling topic deletion is > not very practical for most use-cases. > > In any case, there are plenty of other bad things that users with full > permissions can do that aren't blocked by any server configuration. For > example, they can delete every record in every topic. I can write a script > for that too, and there's no server configuration you can set to disable > it. Or I could simply create hundreds of thousands of topics, until cluster > performance becomes unacceptable (this will be even more of a problem if > someone configured delete.topic.enable as false). Or publish bad data to > every topic, etc. etc. > > The point I'm trying to make here is that you can't rely on these kind of > server-side configurations for security. At most, they're a way to set up > certain very simple policies. But the policies are so simple that they're > hardly ever useful any more. > > For example, if the problem you want to solve is that you want a user to > only be able to create 50 topics and not delete anyone else's topics, you > can solve that with a CreateTopicsPolicy that limits the number of topics, > and some ACLs. There's no combination of auto.create.topics.enable and > delete.topic.enable that will help here. > > Hi Colin, > > Well you gave the example that a user can delete the topics > just by running that script :). > > I understand there are open APIs in Kafka and can lead to rogue clients > taking advantage of it without proper security in place. > > What I am asking so far in this thread is , this KIP is changing the > producer behavior and its not backward compatible. > > The change is backwards compatible. The default will still be server-side > topic auto-creation, just like now. > You will have to specifically change the producer config to get the new > behavior. > I disagree. Today server can turn off the topic creation neither producer or consumer can create a topic. With this KIP , producer can create a topic by turning on client side config when server side config is turned off. We can still achieve > the main goal of the KIP which is to change MetadataRequest creating > topics and send a CreateTopicRequest from Producer and also keep the server > side config to have precedence. This KIP originally written to have server > side preference and there is not much explanation why it changed to have > Producer side preference. > > Arguing that AdminClient can do that and so we are going to make Producer > do the same doesn't make sense. > > "The downside is that if we wanted to check a server side configuration > before sending the create topics request, the code would be more complex. > The behavior would also not be consistent with how topic auto-creation is > handled in Kafka Streams." > > I am not sure why you need to check server side configuration before > sending create topics request. A user enables producer side config to > create topics. > Producer sends a request to the broker and if the broker has > auto.topic.create.enable to true (default) it will allow creation of > topics. If it set to false it returns error back to the client. > > auto.topic.create.enable has never affected CreateTopicsRequest. If you > submit a CreateTopicsRequest and you are authorized, a topic will be > created, regardless of what the value of auto.topic.create.enable is. This > behavior goes back a long way, to about 2016 (Kafka 0.10.1, I think?) > > I don't see how this behavior will be different in Kafka streams. By > default server allows the topic creation and with this KIP, It will only > allow creation of topic when both producer and server side are turned on. > Its exactly the same behavior in KIP-361. > > I suggest running a streams job as a test. It creates the topics it needs > using AdminClient. The value of auto.topic.create.enable is not relevant. > Whether it is true or false, the topics will still be created. > > "In general, it would be nice if we could keep the security and access > control model simple and not introduce a lot of special cases and > exceptions. Kafka has basically converged on using ACLs and > CreateTopicPolicy classes to control who can create topics and where. > Adding more knobs seems like a step backwards, especially when the proposed > knobs don't work consistently across components, and don't provide true > security." This is not about access control at all. Shipping sane defaults > should be prioritized. > > I don't think the default is really the question here. I think everyone > agrees that the default for client-side auto-topic creation should be off. > > My point goes back to KIP-361 why we kept the server side config to have > preference. We can keep bringing back the discussion of security policies > but a producer client overiding server side setting is not just security > policy issue . > > "Producer client can override server side setting and not consumer and > also producer can only override creation of topic but no the replication > and partitions. " This doesn't make sense to me and why we want to > introduce such a confusing behavior. > > The scenarios that you're describing (such as dealing with a poorly > configured client that tries to create topics it should not) do seem to be > about access control. > > We keep talking about CreateTopicPolicy and yet we don't have default one > and asking every user of Kafka implement their own doesn't make sense here. > > The point of CreateTopicPolicy is exactly that you can implement your own, > though. It's a way of customizing what the policy is in your specific > cluster. > > I agree that most people don't want to write a custom policy. But most of > those people are satisfied with just setting up ACLs to set up simple > policies like this user can create topics, that user can't, etc. That's why > I suggested adding support for ACLs to insecure clusters might be helpful. > > Also, just as a side note, wouldn't it would be impossible for us to > specify a default CreateTopicsPolicy that did anything at this point anyway > without breaking backwards compatibility? Maybe I'm misunderstanding the > proposal. > > I am asking about exact behavior that we shipped for consumer side https:/ > / cwiki. apache. org/ confluence/ display/ KAFKA/ > KIP-361%3A+Add+Consumer+Configuration+to+Disable+Auto+Topic+Creation > ( > https://cwiki.apache.org/confluence/display/KAFKA/ > KIP-361%3A+Add+Consumer+Configuration+to+Disable+Auto+Topic+Creation > ) > > I still didn't get any response why this behavior shouldn't be exactly > like Kafka consumer and why do we want to have producer to overrider server > side config and while not allowing consumer to do so. We are not even > allowing the same contract and this will cause more confusion from the > users standpoint. > > Hmm. The consumer already has a way to override the server side > configuration. See KIP-361: Add Consumer Configuration to Disable Auto > Topic Creation. This lets the consumer skip auto-creating topics, even if > auto-creation is enabled on the broker. > > Yes that's what I am saying and it doesn't allow topic creation if the > server side auto-creation is disabled and in consumer its enabled. I > would like to see the exact behavior for producer as stated in KIP-361. > > To be fair, the KIP should probably discuss why we don't want to implement > client-side topic creation in the consumer in "rejected alternatives." > Maybe Justine can add more context here in the KIP. > > The last time we talked about this, the reasoning was that we wanted to > eventually get rid of consumer-side auto-topic creation entirely, and so it > wasn't worth implementing an improved way of doing it. Producer side auto > topic-creation, in contrast, will probably stick around, although we'd like > to deprecate and remove the problematic server-side mechanism over time. > > We should implement the producer side topic creation with proper create > topic request and I am in favor of this KIP. > > All I am asking is don't make the producer to override server side config > and keep it similar to KIP-361 just like consumer, it honors what set on > server side which takes the precedence. Changing this behavior in > producer is backward incompatible and will catch users by surprise. > > All arguments for enforcing producer side overriding config can still be > achieved. Server side auto creation turned on by default and any new > producer client setting their auto creation config to true will create > topics in default behavior and any user who set server side to false and > upgrades to latest kafka with this KIP will not see any unwanted behavior > from clients. IMO this is not a unreasonable request on this KIP and this > requested behavior is exactly what the KIP initially proposed. > > Thanks, > > Harsha > > best, > Colin > > On Tue, Aug 6, 2019 at 9:09 PM Colin McCabe < cmccabe@ apache. org ( > cmcc...@apache.org ) > wrote: > > On Tue, Aug 6, 2019, at 18:06, Harsha Ch wrote: > > Not sure how the AdminClient applies here, It is an external API and is > not part of KafkaProducer so any user who updates to latest version of > Kafka with this feature get to create the topics. > They have to build a tooling around AdminClient allow themselves to > > create > > topics. > > Hi Harsha, > > Hmm... I'm not sure I follow. Users don't have to build their own tooling, > right? They can use any of the shell scripts that we've shipped in the last > few releases. For example, if any of your users run it, this shell script > will delete all of the topics from your non-security-enabled cluster: > > ./ bin/ kafka-topics. sh ( http://bin/kafka-topics.sh ) > --bootstrap-server localhost:9092 --list 2>/dev/null > | xargs -l ./ bin/ kafka-topics. sh ( http://bin/kafka-topics.sh ) > --bootstrap-server localhost:9092 --delete > --topic > > They will need to fill in the correct bootstrap servers list, of course, > not localhost. This deletion script will work on some pretty old brokers, > even back to the 0.10 releases. It seems a little odd to trust your users > with this power, but not trust them to avoid changing a particular > configuration key. > > There is no behavior in Kafka producer that allowed users to delete the > topics or delete the records. So citing them as an example doesn't makes > sense in this context. > > I think Kafka Streams is relevant here. After all, it's software that we > ship as part of the official Kafka release. And it auto-creates topics even > when auto.create.topics.enable is set to false on the broker. > > I think that auto.create.topics.enable was never intended as a security > setting to control access. It was intended as a way to disable the > broker-side auto-create feature specifically, because there were some > problems with that specific feature. Broker-side auto-creation is > frustrating because it's on by default, and because it can auto-create > topics even if the producer or consumer didn't explicitly ask for that. > Neither of those problems applies to this KIP: producers have to > specifically opt in, and it won't be on by default. Basically, we think > that client-side auto-creation is actually a lot better-- hence this KIP > :) > > But there is > a functionality which allowed creation of topics if they don't exist in > > the > > cluster and this behavior could be controlled by a config on the server > side. Now with this KIP we are allowing producer to make that decision > without any gateway on the server via configs. Any user who is not aware > > of > > such changes > can accidentally create these topics and we are essentially removing a > config that exists in brokers today to block this accidental creation and > allowing clients to take control. > > Again, I hope I'm not misinterpreting, but I don't see how this can be > turned on accidentally. The user would have to specifically turn this on in > the producer by setting the configuration key. > > I still didn't get any positives of not having server side configs? if you > want to turn them on and allow any client to create topics set the default > to true > and allow users who doesn't want to have this feature let them turn them > off. It will be the exact behavior as it is today , as far as producer is > concerned. I am not > understanding why not having server side configs to gateways such a hard > requirement and this behavior exists today. As far I am concerned this > breaks the backward compatibility. > > The downside is that if we wanted to check a server side configuration > before sending the create topics request, the code would be more complex. > The behavior would also not be consistent with how topic auto-creation is > handled in Kafka Streams. > > In general, it would be nice if we could keep the security and access > control model simple and not introduce a lot of special cases and > exceptions. Kafka has basically converged on using ACLs and > CreateTopicPolicy classes to control who can create topics and where. > Adding more knobs seems like a step backwards, especially when the proposed > knobs don't work consistently across components, and don't provide true > security. > > Maybe we should support an insecure mode where there are still users and > ACLs. That would help people who don't want to set up Kerberos, etc. but > still want to protect against misconfigured clients or accidents. Hadoop > has something like this, and I think it was useful. NFS also supported > (supports?) a mode where you just pass whatever user ID you want and the > system believes you. These things clearly don't protect against malicious > users, but they can help set up policies when needed. > > best, > Colin > > Thanks, > Harsha > > On Tue, Aug 6, 2019 at 4:02 PM Colin McCabe < cmccabe@ apache. org ( > cmcc...@apache.org ) > wrote: > > Hi Harsha, > > Thanks for taking a look. > > I'm not sure I follow the discussion about AdminClient. > > KafkaAdminClient > > has been around for about 2 years at this point as a public class. > > There > > are many programs that use it to automatically create topics. Kafka > Streams does this, for example. If any of your users run Kafka > > Streams, > > they will be auto-creating topics, regardless of what setting you use > > for > > auto.create.topics.enable. > > A big part of the annoyance of auto-topic creation right now is that > > it is > > on by default. The new configuration proposed by KIP-487 wouldn't be. > Users would have to explicitly opt in to the new behavior of > > client-side > > topic creation. If you run without security, you're already putting a > > huge > > amount of trust in your users. For example, you trust them not to > > delete > > records with the kafka-delete-records. sh ( http://kafka-delete-records. > sh/ > ) command, or delete topics with kafka-topics. sh ( http://kafka-topics. > sh/ > ). Trusting them not to set a certain config value seems minor in > comparison, right? > > best, > Colin > > On Tue, Aug 6, 2019, at 10:49, Harsha Chintalapani wrote: > > Hi, > Even with policies one needs to implement that, so for every > > user who > > doesn't want a producer to create topics or have limits around > > partitions & > > replication factor they have to implement a policy. The KIP is changing > the behavior , it might not be introducing > > the > > new functionality but it will enable producers to override the create > > topic > > config settings on the broker. What I am asking for to provide a > > config > > that will disable auto creation of topics and if its enabled set some > > sane > > defaults so that clients can create a topic with in those limits. I > > don't > > see how this not related to this KIP. > If the server config options as I suggested doesn't interest > > you at > > least have a default CreateTopicPolices in place. > To give an example, In our environment we disable the > auto.create.topic.enable and force users to go through a centralized > service as we want capture more details about the topic creation and > requirements. With this KIP, a producer can create a topic with no > > bounds. > > Another example max.message.size we define that at cluster level > > and one > > can override max.messsage.size at topic level, any misconfiguration > > at > > this > > will cause service degradation. Its not always about the rogue > > clients, > > users can easily misconfigure and can cause an outage. Again we can talk > about CreateTopicPolicy but without having a > > default > > implementation and asking everyone to implement their own while > > changing > > the behavior in producer doesn't make sense to me. > > Thanks, > Harsha > > On Tue, Aug 06 , 2019 at 7:41 AM, Ismael Juma < ismael@ juma. me. uk ( > ism...@juma.me.uk ) > > > wrote: > > Hi Harsha, > > I mentioned policies and the authorizer. For example, with > CreateTopicPolicy, you can implement the limits you describe. If > > you > > have > > ideas of how that should be improved, please submit a KIP. My > > point is > > that > > this KIP is not introducing any new functionality with regards to > > what > > rogue clients can do. It's using the existing protocol that is > > already > > exposed via the AdminClient. So, I don't think we need to address > > it in > > this KIP. Does that make sense? > > Ismael > > On Tue, Aug 6 , 2019 at 7:13 AM Harsha Chintalapani < > > kafka@ harsha. io ( ka...@harsha.io ) > > > wrote: > > Ismael, > Sure AdminClient can do that and we should've shipped a config or > > use > > the > > existing one to block that. Not all users are yet to upgrade to > > AdminClient > > and start using that to cause issues yet. In shared environment we > > should > > allow server to set sane defaults and not allow every client to go > > ahead > > create random no.of topic/partitions and replication factor. Even > > if > > the > > users want to allow topic creation proposed in the KIP , it makes > > sense to > > have some guards against the no.of partitions and replication > > factor. > > Authorizer is not always an answer to block requests and having > > users > > set > > server side configs to protect a multi-tenant environment is > > required. > > In a > > non-secure environment Authorizer is a blunt instrument either you > > end > > up > > blocking everyone or allowing everyone. > I am asking to have server side that allow clients to create > > topics or > > not > > , if they are allowed set a ceiling on max no.of partitions and > replication-factor. > > -Harsha > > On Mon, Aug 5 2019 at 8:58 PM, < ismaelj@ gmail. com ( isma...@gmail.com > ) > > wrote: > > Harsha, > > Rogue clients can use the admin client to create topics and > > partitions. > > ACLs and policies can help in that case as well as this one. > > Ismael > > On Mon, Aug 5 , 2019, 7:48 PM Harsha Chintalapani < kafka@ harsha. io ( > ka...@harsha.io ) > > > wrote: > > Hi Justine, > Thanks for the KIP. > "When server-side auto-creation is disabled, client-side > > auto-creation > > will try to use client-side configurations" > If I understand correctly, this KIP is removing any server-side > > blocking > > client auto creation of topic? > if so this will present potential issue of rogue client creating > > ton of > > topic-partitions and potentially bringing down the service for > > everyone > > or > > degrade the service itself. > By reading the KIP its not clear to me that there is a clear way to > > block > > auto creation topics of all together from clients by server side > > config. > > Server side configs of default topic, partitions should take higher > precedence and client shouldn't be able to create a topic with > > higher > > no.of > > partitions, replication than what server config specifies. > > Thanks, > Harsha > > On Mon, Aug 05 , 2019 at 5:24 PM, Justine Olshan < > > jolshan@ confluent. io ( jols...@confluent.io ) > > > wrote: > > Hi all, > I made some changes to the KIP. Hopefully this configuration change > > will > > make things a little clearer. > > https:/ / cwiki. apache. org/ confluence/ display/ KAFKA/ ( https://cwiki. > apache.org/confluence/display/KAFKA/ ) > KIP-487%3A+Client-side+Automatic+Topic+Creation+on+Producer > > Please let me know if you have any feedback or questions! > > Thank you, > Justine > > On Wed, Jul 31 , 2019 at 1:44 PM Colin McCabe < cmccabe@ apache. org ( > cmcc...@apache.org ) > > > wrote: > > Hi Mickael, > > I think you bring up a good point. It would be better if we didn't > > ever > > have to set up client-side configuration for this feature, and > > KIP-464 > > would let us skip this entirely. > > On Wed, Jul 31, 2019, at 09:19, Justine Olshan wrote: > > Hi Mickael, > I agree that KIP-464 works on newer brokers, but I was a bit > > worried > > how > > things would play out on older brokers that* do not *have KIP 464 > > included. > > Is it enough to throw an error in this case when producer configs > > are > > not > > specified? > > I think the right thing to do would be to log an error message in > > the > > client. We will need to have that capability in any case, to cover > scenarios like the client trying to auto-create a topic that they > > don't > > have permission to create. Or a client trying to create a topic on > > a > > broker > > so old that CreateTopicsRequest is not supported. > > The big downside to relying on KIP-464 is that it is a very recent > > feature > > -- so recent that it hasn't even made its way to any official > > Apache > > release. It's scheduled for the upcoming 2.4 release in a few > > months. > > So if you view this KIP as a step towards removing broker-side > auto-create, you might want to support older brokers just to > > accelerate > > adoption, and hasten the day when we can finally flip broker-side > auto-create to off (or even remove it entirely). > > I have to agree, though, that having client-side configurations for > > number > > of partitions and replication factor is messy. Maybe it would be > > worth > > it > > to restrict support to post-KIP-464 brokers, if we could avoid > > creating > > more configs. > > best, > Colin > > On Wed, Jul 31 , 2019 at 9:10 AM Mickael Maison < > > mickael. maison@ gmail. com ( mickael.mai...@gmail.com ) > > wrote: > > Hi Justine, > > We can rely on KIP-464 which allows to omit the partition count or > replication factor when creating a topic. In that case, the broker > > defaults > > are used. > > On Wed, Jul 31 , 2019 at 4:55 PM Justine Olshan < > > jolshan@ confluent. io ( jols...@confluent.io ) > > > wrote: > > Michael, > That makes sense to me! > To clarify, in the current state of the KIP, the producer does not > > rely > > on > > the broker to autocreate--if the broker's config is disabled, then > > the > > producer can autocreate on its own with a create topic request (the > > same > > type of request the admin client uses). > However, if both configs are enabled, the broker will autocreate > > through > > a > > metadata request before the producer gets a chance. Of course, the > > way > > to > > avoid this, is to do as you suggested, and set > > the > > "allow_auto_topic_creation" field to false. > > I think the only thing we need to be careful with in this setup is > > without > > KIP 464, we can not use broker defaults for this topic. A user > > needs > > to > > specify the number of partition and replication factor in the > > config. > > An > > alternative to this is to have coded defaults for when these > > configs > > are > > unspecified, but it is not immediately apparent what these defaults > > should > > be. > > Thanks again for reading my KIP, > Justine > > On Wed, Jul 31 , 2019 at 4:19 AM Mickael Maison < > > mickael. maison@ gmail. com ( mickael.mai...@gmail.com ) > > wrote: > > Hi Justine, > > Thanks for the response! > In my opinion, it would be better if the producer did not rely at > > all > > on the broker auto create feature as this is what we're aiming to > deprecate. When requesting metadata we can set the > "allow_auto_topic_creation" field to false to avoid the broker auto > creation. Then if the topic is not existing, send a > > CreateTopicRequest. > > What do you think? > > On Mon, Jul 29 , 2019 at 6:34 PM Justine Olshan < > > jolshan@ confluent. io ( jols...@confluent.io ) > > > wrote: > > Currently the way it is implemented, the broker auto-creation > > configuration > > takes precedence. The producer will not use the CreateTopics > > request. > > (Technically it can--but the topic will already be created > > through > > the > > broker, so it will never try to create the topic.) It is possible > > to > > change this however, and I'd be happy to > > discuss > > the > > benefits of this alternative. > > Thank you, > Justine > > On Mon, Jul 29 , 2019 at 10:26 AM Mickael Maison < > > mickael. maison@ gmail. com ( mickael.mai...@gmail.com ) > > > wrote: > > Hi Justine, > > Thanks for the KIP! > > In case auto creation is enabled on both the client and server, > > will > > the producer still use the AdminClient (CreateTopics request) > > to > > create topics? and not rely on the broker auto create. I'm > > guessing the > > answer is yes but can you make it explicit. > > Thank you > > On Wed, Jul 24 , 2019 at 6:23 PM Justine Olshan < > > jolshan@ confluent. io ( jols...@confluent.io ) > > > wrote: > > Hi, > Just a friendly reminder to take a look at this KIP if you > > have > > the > > time. > > I was thinking about broker vs. client default precedence, > > and I > > think it > > makes sense to keep the broker as the default used when both > > client-side > > and broker-side defaults are configured. The idea is that > > there > > would be > > pretty clear documentation, and that many systems with > > configurations > > that > > the client could not change would likely have the auto-create > > default > > off. > > (In cloud for example). > > It also seems like in most cases, the consumer config > ' allow. auto. create. topics ( http://allow.auto.create.topics/ ) ' was > created to actually prevent > > the > > creation > > of > > topics, so the loss of creation functionality will not be a > > big > > problem. > > I'm happy to discuss any other compatibility problems or > > components > > of > > this KIP. > > Thank you, > Justine > > On Wed, Jul 17 , 2019 at 9:11 AM Justine Olshan < > > jolshan@ confluent. io ( jols...@confluent.io ) > > wrote: > > Hello all, > > I was looking at this KIP again, and there is a decision I > > made > > that I > > think is worth discussing. > > In the case where both the broker and producer's > 'auto.create.topics.enable' are set to true, we have to > > choose > > either > > the > > broker configs or the producer configs for the replication > factor/partitions. > > Currently, the decision is to have the broker defaults take > > precedence. > > (It is easier to do this in the implementation.) It also > > makes > > some > > sense > > for this behavior to take precedence since this behavior > > already > > occurs as > > the default. > > However, I was wondering if it would be odd for those who > > can > > only > > see > > the > > producer side to set configs for replication > > factor/partitions > > and > > see > > different results. Currently the documentation for the > > config > > states > > that > > the config values are only used when the broker config is > > not > > enabled, > > but > > this might not always be clear to the user. Changing the > > code > > to > > have > > the > > producer's configurations take precedence is possible, but > > I > > was > > wondering > > what everyone thought. > > Thank you, > Justine > > On Fri, Jul 12 , 2019 at 2:49 PM Justine Olshan < > > jolshan@ confluent. io ( jols...@confluent.io ) > > > wrote: > > Just a quick update-- > > It seems that enabling both the broker and producer > > configs > > works > > fine, > > except that the broker configurations for partitions, > > replication > > factor > > take precedence. > I don't know if that is something we would want to > > change, but > > I'll be > > updating the KIP for now to reflect this. Perhaps we would > > want to > > add more > > to the documentation of the the producer configs to > > clarify. > > Thank you, > Justine > > On Fri, Jul 12 , 2019 at 9:28 AM Justine Olshan < > > jolshan@ confluent. io ( jols...@confluent.io ) > > > wrote: > > Hi Colin, > > Thanks for looking at the KIP. I can definitely add to > > the > > title > > to > > make > > it more clear. > > It makes sense that both configurations could be turned > > on > > since > > there > > are many cases where the user can not control the > > server-side > > configurations. I was a little concerned about how both > > interacting > > would > > work out -- if there would be to many requests for new > > topics, > > for > > example. > > But it since it does make sense to allow both > > configurations > > enabled, I > > will test out some scenarios and I'll change the KIP to > > support > > this. > > I also agree with documentation about distinguishing the > > differences. I > > was having some trouble with the wording but I like the > > phrases > > "server-side" and "client-side." That's a good > > distinction I > > can > > use > > when > > describing. > > I'll try to update the KIP soon keeping everyone's input > > in > > mind. > > Thanks, > Justine > > On Thu, Jul 11 , 2019 at 5:39 PM Colin McCabe < > > cmccabe@ apache. org ( cmcc...@apache.org ) > > wrote: > > Hi Justine, > > Thanks for the KIP. This seems like a good step towards > > removing > > server-side topic auto-creation. > > We should add included "client-side" to the title of > > the KIP > > somewhere, > > to make it clear that we're talking about client-side > > auto > > creation. > > The KIP says: > > In order to automatically create topics with the > > producer, the > > producer's > > auto.create.topics.enable config must be set to true > > and > > the > > broker > > config should be set to false > > From a user's point of view, this seems > > counter-intuitive. > > In > > order to > > auto-create topics the broker's > > auto.create.topics.enable > > config > > should be > > set to false? It seems like the server-side > > auto-create is > > unrelated to > > the client-side auto-create. We could have both turned > > on > > (and > > I'm > > sure > > that in the real world, people will try this > > configuration...) > > There's no > > reason not to support this, I think. > > We should add some documentation explaining the > > difference > > between > > server-side and client-side auto-creation. Without > > documentation, > > an admin > > might think that they had disabled all forms of > > auto-creation by > > setting > > the -side setting to false-- but this is not the case, > > of > > course. > > best, > Colin > > On Thu, Jul 11, 2019, at 16:22, Justine Olshan wrote: > > Hi Dhruvil, > > Thanks for reading the KIP! > That was the general idea for deprecation. We would > > log a > > warning > > when the > > config is enabled on the broker. > I also believe that there would be a change to > > documentation. > > If there is anything else that should be done, please > > let > > me > > know! > > Justine > > On Thu, Jul 11 , 2019 at 4:17 PM Dhruvil Shah < > > dhruvil@ confluent. io ( dhru...@confluent.io ) > > > wrote: > > Hi Justine, > > Thanks for the KIP, this is great! > > Could you add some more information about what > > deprecating > > the > > broker > > configuration means? Would we log a warning in the > > logs > > when > > auto > > topic > > creation is enabled on the broker, for example? > > Thanks, > Dhruvil > > On Thu, Jul 11 , 2019 at 10:28 AM Justine Olshan < > > jolshan@ confluent. io ( jols...@confluent.io ) > > > wrote: > > Hello all, > > I'd like to start a discussion thread for KIP-487. This KIP plans > > to > > deprecate the current system of > > auto-creating > > topics > > through requests to the metadata and give the > > producer the > > ability to > > automatically create topics instead. > > More information can be found here: > > https:/ / cwiki. apache. org/ confluence/ display/ KAFKA/ ( https://cwiki. > apache.org/confluence/display/KAFKA/ ) > KIP-487%3A+Automatic+Topic+Creation+on+Producer > > Thank you, > Justine Olshan > >