This is a super cool proposal. Thank you for it!

1) The KIP mentions VCs are allowed ALTER_CONFIG, but doesn't mention what 
configs will be allowed to get modified and what not. There are a few 
broker-level configs that shouldn't be modifiable by any single VC imo - 
https://github.com/apache/kafka/blob/766caaa551a3e7561cf0434e457ac4230435cb54/core/src/main/scala/kafka/server/DynamicBrokerConfig.scala#L86-L93.
 Kafka also supports changing log levels dynamically, would be weird if one VC 
could change it for all.

2)  re: topic names - the UUID+name combo simply reads weird and is not very 
user friendly. My understanding is that tenants will see the topic name without 
the UUID, as the mapping will happen in the broker through the user 
(principal). If you don't use a principal (i.e no auth), you'd just access the 
general cluster. On the other hand, I agree with the reasoning of not using 
KIP-37 style hierarchy. 

Perhaps we could extend the topic describe command (and metadata responses that 
carry the info) to contain the tenant info? I just want to make sure we will 
offer first-class support in managing such clusters

3) metrics. Would be nice to have a few metrics that aggregate usage per VC. I 
imagine operators will need a way to monitor these things. That being said, I'm 
not sure how deep into detail you envision going in this single KIP - is the 
idea here to present it all from a high level, get consensus, and then perhaps 
split in a few more detailed KIPs? (a-la KIP-500)

PS: This is a nit but it's worthwhile to get the terms right. Do we define a 
"tenant" as a "VC", or is a "tenant" a Principal that is connected to one VC 
(or more in the future)?

Another nit I would suggest for better marketing/interest in the feature is to 
incorporate the word "multi-tenant" in the proposal. It's industry-standard, 
very SEO friendly and in general just explains things better. As a simple 
anecdote, I skipped on reading this proposal at first because I didn't realize 
it was a multi-tenant solution!

In any case, I'm looking forward to seeing this proposal get in! I don't see 
downsides from having this feature, it's table-stakes for modern data infra in 
2025 and as you mentioned - the high overhead cost of Kafka (3 nodes, 3 
controllers) is overkill for a majority of use cases. If we want to see greater 
adoption of Kafka, we need to cater to the smaller fish too (and hope they grow 
to use more of the platform) As another point - vendors have already offered 
this in the market for many years (Confluent, RedPanda Serverless)

Best,
Stan

On 2025/03/11 04:10:32 萨尔卡 wrote:
> agreed with 3-node-case. and we can do more: both virtual clusters 
> and hard clusters.
> virtual separate like mysql. different users can use different 
> database. different kafka users use different VC.  
> how about 10000 kafka instances? but kafka should do HARD isolation for 
> users to avoid influencing in each others. and keep controll risks UNDER 
> small-hard-clusters
> 
> 
> let's just called it VC-Plus with hard isolation
> 
> 
> 1. little resource use VC but can not ensure influencing
> 2. little resource use VC-Plus, no need to do
> 3. lots of resource can use VC but worse than VC-Plus
> VC-Plus can avoid influencing in each others, keep controll 
> risks UNDER small-hard-clusters
> 
> 
> 
> 
> 1. little resource, not suggest to use VC
> 
> 
> 
> > Administrators would be able to put a cap on the quota of a virtual
> > cluster, so they can prevent virtual-clusters from monopolizing 
> resources.
> > This can be thought of as a certain kind of isolation but I'm not sure if
> > you meant more than that? I'll add a revised version of the answer to 
> David
> > to the KIP, but the bottom line for why don't we chose the hard kind of
> > virtualization where we separate off whole brokers into a cluster of a
> > cluster is that it's less efficient on resources too. As I imagine, in a
> > hard virtualization case if a 3 node Kafka cluster is split into 2 
> virtual
> > clusters, we would need to add 3 more brokers if we wanted to satisfy the
> > requirement of topics with a replication factor of 3.
> > Also with quotas one would be able to control how much produce-, consume-
> > and replication-traffic goes through every topic. Adding VC quotas on top
> > ensures that resources aren't monopolized.
> > 
> > Best,
> > Viktor
> > 
> &gt; On Wed, Mar 5, 2025 at 3:20 AM 萨尔卡 <tigerwe...@qq.com.invalid&gt; wrote:
> 
> 
> &gt; thanks for your answer. @vk
> &gt; in my&amp;nbsp;experience, isolation-in-brokers to avoid influencing each
> &gt; other would be a point user cares in-use.&amp;nbsp;

Reply via email to