Hi Andrew, thanks for the replies.

Agreed on the override policy as you describe it (the framework owns
the config, not the apps/connectors).

Following that ownership pov, I would like to bring back the Kafka
Streams case and the missing bit: identifying the instance of the
framework. For KS it would be valuable to know not only the framework
name but also the framework instance behind a client connection, so we
can reason about all the connections coming from one Streams instance
(embedded consumers/producer/admin). Streams already has a UUID for
this, the process id, and already sends it to the broker, but only on
individual paths (e.g, StreamsGroupHeartbeat). The process id is also
part of the default client.id, so the identifier is already there, but
this is where your ownership point matters: client.id is owned
by the user app, who can change it freely, vs. a framework id that
would be owned by the framework (just as the name and version). This
would be optional for the frameworks to set of course, just pointing
out that it's an extension to this intention of identifying the
framework, that seems relevant for KS. What do you think?

Thanks!
Lianet


On Tue, Sep 29, 2026 at 3:28 PM Andrew Schofield <[email protected]> wrote:
>
> Hi Lianet,
> Thanks for your response.
>
> LM3: I'm opposed to arbitrary concatenation because it makes it impossible
> to do sensible matching and the like. If we did the following, that would be
> fine:
>
> * Kafka Connect uses org.apache.kafka.connect+your.connector.class.name.here
> for framework name, and x.y.z+a.b.c for framework version.
> * Explicitly prevent overriding of these configs by the connectors. Kafka
> Connect owns the configs, not the connectors.
>
> Then we get flexibility and sanity together. Maybe that's the best way 
> forward.
>
> I'll see whether consensus emerges before updating the KIP.
>
> Thanks,
> Andrew
>
> On 2026/09/29 19:06:48 Lianet Magrans wrote:
> > One more detail (again related to Chris' comment):
> >
> > LM3:  if we want to leave the door open for concatenations, we relax
> > the validations to allow + (Chris used the connect example "client
> > framework of
> > "org.apache.kafka.connect+com.acme.FooConnector" and a version of
> > "4.4.0+1.2.3"), but something like that wouldn't be allowed with the
> > current regex.
> >
> > Thanks,
> > Lianet
> >
> > On Tue, Sep 29, 2026 at 2:50 PM Lianet Magrans <[email protected]> wrote:
> > >
> > > Hi Andrew,
> > >
> > > LM1: Just checking that it's intentional that the new methods added to
> > > the ClientTelemetryContext interface have no default implementation?
> > > It will break implementations but I guess we're relying on the fact
> > > that implementations live in the broker itself?
> > >
> > > LM2: related to Chris' comments and the overrides, if we have an app
> > > setting the config and the framwork setting it internally too, seems
> > > we're saying the user config wins?
> > >
> > > Thanks!
> > > Lianet
> > >
> > > On Tue, Sep 29, 2026 at 2:26 PM Andrew Schofield <[email protected]> 
> > > wrote:
> > > >
> > > > Hi Chris,
> > > > Thanks for your message.
> > > >
> > > > 1. I don't want to pander to people who want to concatenate identifiers.
> > > > We could have ConnectorName and ConnectorVersion fields along the same
> > > > lines as the SoftwareFrameworkName and SoftwareFrameworkVersion. That
> > > > would be a cleaner way of doing it. Maybe we can come up with a concrete
> > > > proposal easily, but the risk is that we end up adding a heap of other
> > > > Connect concepts too and that's way beyond the original intent of the 
> > > > KIP.
> > > > Let me know what you think.
> > > >
> > > > 2. There is nothing to prevent a connector config overriding these
> > > > configs. Do you think this is something thet should be prevented to
> > > > dissuade the kind of shenanigans that you illustrated with 
> > > > concatenation?
> > > >
> > > > Thanks,
> > > > Andrew
> > > >
> > > > On 2026/09/28 21:57:43 Chris Egerton wrote:
> > > > > Hi,
> > > > >
> > > > > Forgive me if this is already addressed; there's a lot of context 
> > > > > here and
> > > > > I haven't read the entire thread. I think the section on Kafka 
> > > > > Connect is a
> > > > > little thin at the moment.
> > > > >
> > > > > 1. The type and version of the connector is important information and 
> > > > > it'd
> > > > > be nice if there were a way to include that. This could be done by
> > > > > embedding the relevant information inside the strings for the proposed
> > > > > properties; e.g., a client framework of
> > > > > "org.apache.kafka.connect+com.acme.FooConnector" and a version of
> > > > > "4.4.0+1.2.3" (where the Kafka Connect runtime version is first and 
> > > > > the
> > > > > connector's version is second); however, that feels like a hack (a
> > > > > sentiment Andrew seems to share given this remark: "We could support
> > > > > concatenation of framework information, but that's just pandering to 
> > > > > these
> > > > > people.").
> > > > >
> > > > > 2. Would users be allowed to override either the framework or version 
> > > > > by
> > > > > explicitly setting values for them in a connector config, e.g., "
> > > > > producer.override.client.framework.name"?
> > > > >
> > > > > Cheers,
> > > > >
> > > > > Chris
> > > > >
> > > > > On Mon, Sep 28, 2026 at 5:33 PM Lianet Magrans <[email protected]> 
> > > > > wrote:
> > > > >
> > > > > > Ok, good that the concept was already considered. I will bring it 
> > > > > > up for
> > > > > > discussion soon with KIP-1324 then.
> > > > > >
> > > > > > Thanks!
> > > > > > Lianet
> > > > > >
> > > > > > On Mon, Sep 28, 2026, 2:18 p.m. Andrew Schofield 
> > > > > > <[email protected]>
> > > > > > wrote:
> > > > > >
> > > > > > > Hi Lianet,
> > > > > > > Thanks for your response.
> > > > > > >
> > > > > > > I did discuss something similar with Matthias but decided that we 
> > > > > > > weren't
> > > > > > > quite ready to commit to a specific behaviour in this KIP. I 
> > > > > > > suggest that
> > > > > > > you include it in KIP-1324. There's a strong chance that KIPs 
> > > > > > > 1313, 1368
> > > > > > > and 1324 all land in the same 4.5 release, and that will mean the 
> > > > > > > RPC
> > > > > > > changes can be coalesced into the same version bump.
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Andrew
> > > > > > >
> > > > > > > On 2026/09/28 17:38:12 Lianet Magrans wrote:
> > > > > > > > Hi Andrew, just one question here, did we consider identifying 
> > > > > > > > not just
> > > > > > > the
> > > > > > > > framework type and version, but also the "framework instance"? 
> > > > > > > > Similar
> > > > > > to
> > > > > > > > what KIP-1313 did for clients (UUID for 
> > > > > > > > consumer/prodcuer/admin), but
> > > > > > > > closing the loop to have a way to identify instances of this new
> > > > > > "logical
> > > > > > > > client" which is the framework.
> > > > > > > >
> > > > > > > > That would be useful the moment we have several instances of the
> > > > > > > > "framework" running together I expect, e.g., several streams 
> > > > > > > > instances,
> > > > > > > > KIP-1313 would give us UUIDs for all the 
> > > > > > > > consumers/producer/admins
> > > > > > > running
> > > > > > > > underneath, and KIP-1368 tell us they are behind a "logical
> > > > > > > > client"/framework" ("streams"), but no way to tell here one of 
> > > > > > > > the
> > > > > > > > "streams" framwork instances from the other one. Streams 
> > > > > > > > already has a
> > > > > > > > process ID that fills that gap, the point to consider is if it's
> > > > > > > something
> > > > > > > > we would want along with the framework type.
> > > > > > > >
> > > > > > > > I'm thinking about this coming from KIP-1324 btw (pushing 
> > > > > > > > configs from
> > > > > > > the
> > > > > > > > client to the broker). For features like that, seems useful to 
> > > > > > > > identify
> > > > > > > not
> > > > > > > > only the framework type, but also the "framework instance".  
> > > > > > > > I'm happy
> > > > > > to
> > > > > > > > consider it as part of KIP-1324 (that I plan to resume soon), 
> > > > > > > > but
> > > > > > raising
> > > > > > > > it for consideration, as it's closely related to the framework 
> > > > > > > > type.
> > > > > > > >
> > > > > > > > Thanks!
> > > > > > > > Lianet
> > > > > > > >
> > > > > > > > On Thu, Sep 24, 2026 at 2:45 PM Jun Rao via dev 
> > > > > > > > <[email protected]>
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > > Hi, Andrew,
> > > > > > > > >
> > > > > > > > > Thanks for the updated KIP. LGTM
> > > > > > > > >
> > > > > > > > > Jun
> > > > > > > > >
> > > > > > > > > On Thu, Sep 24, 2026 at 10:58 AM Andrew Schofield <
> > > > > > > [email protected]>
> > > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > Hi Jun,
> > > > > > > > > >
> > > > > > > > > > JR7: Done.
> > > > > > > > > >
> > > > > > > > > > Thanks,
> > > > > > > > > > Andrew
> > > > > > > > > >
> > > > > > > > > > On 2026/09/24 16:20:08 Jun Rao via dev wrote:
> > > > > > > > > > > Hi, Andrew,
> > > > > > > > > > >
> > > > > > > > > > > Thanks for the updated KIP.
> > > > > > > > > > >
> > > > > > > > > > > JR7. Piggybacking on the version bump in 4.5 sounds good 
> > > > > > > > > > > to me.
> > > > > > > Could
> > > > > > > > > we
> > > > > > > > > > > document the version bump in the KIP?
> > > > > > > > > > >
> > > > > > > > > > > Jun
> > > > > > > > > > >
> > > > > > > > > > > On Thu, Sep 24, 2026 at 7:32 AM Andrew Schofield <
> > > > > > > > > [email protected]>
> > > > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > > > Hi Jun,
> > > > > > > > > > > > Thanks for your reply.
> > > > > > > > > > > >
> > > > > > > > > > > > JR7: There is a tension here between bumping the 
> > > > > > > > > > > > version when
> > > > > > > adding
> > > > > > > > > > these
> > > > > > > > > > > > tagged fields because it is a new feature and not doing 
> > > > > > > > > > > > so
> > > > > > > because of
> > > > > > > > > > the
> > > > > > > > > > > > negotiation aspects of this. I believe that AK 4.5 will
> > > > > > > introduce a
> > > > > > > > > new
> > > > > > > > > > > > version of ApiVersions anyway because of KIP-1313, so 
> > > > > > > > > > > > the best
> > > > > > > path
> > > > > > > > > is
> > > > > > > > > > > > probably to piggyback the tagged field addition onto 
> > > > > > > > > > > > that new
> > > > > > > > > version.
> > > > > > > > > > > >
> > > > > > > > > > > > JR8.1: I've added this constraint in AK 5.0 since we 
> > > > > > > > > > > > need a
> > > > > > major
> > > > > > > > > > version
> > > > > > > > > > > > to enforce this. In practice, nobody will be hit by 
> > > > > > > > > > > > this limit.
> > > > > > > > > > > > JR8.2: Yes, constraint added to the configs too.
> > > > > > > > > > > >
> > > > > > > > > > > > Thanks,
> > > > > > > > > > > > Andrew
> > > > > > > > > > > >
> > > > > > > > > > > > On 2026/09/24 00:08:16 Jun Rao via dev wrote:
> > > > > > > > > > > > > Hi, Andrew,
> > > > > > > > > > > > >
> > > > > > > > > > > > > Thanks for the updated KIP.
> > > > > > > > > > > > >
> > > > > > > > > > > > > JR7. Currently, we always bump the version when 
> > > > > > > > > > > > > adding a
> > > > > > tagged
> > > > > > > > > > field.
> > > > > > > > > > > > The
> > > > > > > > > > > > > intention of this KIP is to add the two tagged fields
> > > > > > without a
> > > > > > > > > > version
> > > > > > > > > > > > > bump. This choice seems reasonable since it avoids an 
> > > > > > > > > > > > > extra
> > > > > > > round
> > > > > > > > > of
> > > > > > > > > > > > > ApiVersionRequest version negotiation when 4.5 
> > > > > > > > > > > > > clients talk
> > > > > > to
> > > > > > > 4.4
> > > > > > > > > > > > servers. It
> > > > > > > > > > > > > would be useful to be explicit document there is not 
> > > > > > > > > > > > > version
> > > > > > > bump
> > > > > > > > > for
> > > > > > > > > > > > > ApiVersionRequest.
> > > > > > > > > > > > >
> > > > > > > > > > > > > JR8. "The maximum length of the fields is 249 
> > > > > > > > > > > > > characters"
> > > > > > > > > > > > > JR8.1 Should the length constraint also apply to the 
> > > > > > > > > > > > > existing
> > > > > > > > > fields
> > > > > > > > > > > > > ClientSoftwareName and ClientSoftwareVersion?
> > > > > > > > > > > > > JR8.2 Should we add a length constraint for the two 
> > > > > > > > > > > > > new
> > > > > > client
> > > > > > > > > > > > > configurations?
> > > > > > > > > > > > >
> > > > > > > > > > > > > Jun
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Wed, Sep 23, 2026 at 6:42 AM Andrew Schofield <
> > > > > > > > > > [email protected]>
> > > > > > > > > > > > > wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Jun,
> > > > > > > > > > > > > > Thanks for the reply.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > JR6: Yes, that works. I've added the methods to
> > > > > > > > > > ClientTelemetryContext.
> > > > > > > > > > > > > > Let me know what you think.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > Andrew
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On 2026/09/21 17:54:38 Jun Rao via dev wrote:
> > > > > > > > > > > > > > > Hi, Andrew,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Thanks for the reply.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > JR6. It seems weird that the implementation of a 
> > > > > > > > > > > > > > > KIP-714
> > > > > > > plugin
> > > > > > > > > > > > requires
> > > > > > > > > > > > > > > casting an authorizableRequestContext to an 
> > > > > > > > > > > > > > > internal
> > > > > > class
> > > > > > > > > > > > > > RequestContext.
> > > > > > > > > > > > > > > Would it be better to expose all client related 
> > > > > > > > > > > > > > > resource
> > > > > > > labels
> > > > > > > > > > > > through a
> > > > > > > > > > > > > > > public API in ClientTelemetryContext?
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Jun
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Mon, Sep 21, 2026 at 6:43 AM Andrew Schofield <
> > > > > > > > > > > > [email protected]>
> > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Hi Jun,
> > > > > > > > > > > > > > > > Thanks for the reply.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > JR4: Done. Producer, consumer and admin.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > JR5: Yes. I've reworded slightly.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > JR6: I think the plugin implementation already 
> > > > > > > > > > > > > > > > needs to
> > > > > > > do
> > > > > > > > > > > > something
> > > > > > > > > > > > > > > > similar to get to software name/version.
> > > > > > > > > > > > > > > > ClientTelemetryContext.authorizableRequestContext()
> > > > > > > returns
> > > > > > > > > an
> > > > > > > > > > > > > > instance of
> > > > > > > > > > > > > > > > AuthorizableRequestContext. The
> > > > > > > > > > > > o.a.k.common.requests.RequestContext
> > > > > > > > > > > > > > class
> > > > > > > > > > > > > > > > implements that interface, and it also lets you 
> > > > > > > > > > > > > > > > get to
> > > > > > > > > > > > > > ClientInformation
> > > > > > > > > > > > > > > > and that's where you can find the software 
> > > > > > > > > > > > > > > > name/version
> > > > > > > and
> > > > > > > > > > > > framework
> > > > > > > > > > > > > > > > name/version. You can see this in
> > > > > > > > > > > > > > > > o.a.k.server.metrics.ClientMetricsInstanceMetadata.
> > > > > > > > > > > > > > > >  I
> > > > > > > would
> > > > > > > > > > > > describe
> > > > > > > > > > > > > > this
> > > > > > > > > > > > > > > > as grubby :)
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > One way forward here would be to remove the
> > > > > > broker-added
> > > > > > > > > > resource
> > > > > > > > > > > > > > labels
> > > > > > > > > > > > > > > > from KIP-1368, but leave the additions to the 
> > > > > > > > > > > > > > > > match
> > > > > > > criteria.
> > > > > > > > > > Then
> > > > > > > > > > > > it
> > > > > > > > > > > > > > would
> > > > > > > > > > > > > > > > still be possible to specify, for example, that
> > > > > > > particular
> > > > > > > > > > metrics
> > > > > > > > > > > > > > should
> > > > > > > > > > > > > > > > be captured for Kafka Streams clients only, 
> > > > > > > > > > > > > > > > without
> > > > > > > adding to
> > > > > > > > > > the
> > > > > > > > > > > > > > > > grubbiness.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > > > Andrew
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On 2026/09/15 20:44:06 Jun Rao via dev wrote:
> > > > > > > > > > > > > > > > > Hi, Andrew,
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Thanks for the reply. A few more comments.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > JR4. "The configuration keys are defined in
> > > > > > > > > > > > > > > > > org.apache.kafka.clients.CommonClientConfigs"
> > > > > > > > > > > > > > > > > Could you explicitly list the clients 
> > > > > > > > > > > > > > > > > (producer,
> > > > > > > consumer,
> > > > > > > > > > > > > > AdminClient,
> > > > > > > > > > > > > > > > > etc.) that define the two new configs?
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > JR5. Should AK frameworks such as kstream and 
> > > > > > > > > > > > > > > > > connect
> > > > > > > set
> > > > > > > > > > > > > > > > > client.framework.name and 
> > > > > > > > > > > > > > > > > client.framework.version
> > > > > > in
> > > > > > > > > their
> > > > > > > > > > > > clients
> > > > > > > > > > > > > > > > > automatically?
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > JR6. "Broker-added resources labels for client
> > > > > > metrics"
> > > > > > > > > > > > > > > > > Are the new labels added in
> > > > > > > > > > > > > > DefaultClientTelemetryContext.RequestContext?
> > > > > > > > > > > > > > > > > Since ClientTelemetryExporter.exportMetrics() 
> > > > > > > > > > > > > > > > > only
> > > > > > > takes
> > > > > > > > > > > > > > > > > ClientTelemetryContext, does the implementor 
> > > > > > > > > > > > > > > > > need to
> > > > > > > cast
> > > > > > > > > it
> > > > > > > > > > > > > > > > > to DefaultClientTelemetryContext to retrieve 
> > > > > > > > > > > > > > > > > the new
> > > > > > > > > labels?
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Jun
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Fri, Sep 11, 2026 at 12:48 PM Andrew 
> > > > > > > > > > > > > > > > > Schofield <
> > > > > > > > > > > > > > [email protected]
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Hi Jun,
> > > > > > > > > > > > > > > > > > JR1: I dug into the KIP-714 client metrics 
> > > > > > > > > > > > > > > > > > stuff a
> > > > > > > bit
> > > > > > > > > more
> > > > > > > > > > > > and I
> > > > > > > > > > > > > > have
> > > > > > > > > > > > > > > > > > revised the KIP. I have added 
> > > > > > > > > > > > > > > > > > client-framework-name
> > > > > > > and
> > > > > > > > > > > > > > > > > > client-framework-version to the set of keys 
> > > > > > > > > > > > > > > > > > in the
> > > > > > > > > > matching for
> > > > > > > > > > > > > > client
> > > > > > > > > > > > > > > > > > metrics, and also added these broker-added 
> > > > > > > > > > > > > > > > > > metrics
> > > > > > > tags.
> > > > > > > > > > This
> > > > > > > > > > > > is
> > > > > > > > > > > > > > how
> > > > > > > > > > > > > > > > these
> > > > > > > > > > > > > > > > > > pieces of information would have been 
> > > > > > > > > > > > > > > > > > incorporated
> > > > > > > into
> > > > > > > > > > > > KIP_714 had
> > > > > > > > > > > > > > > > they
> > > > > > > > > > > > > > > > > > been part of Kafka at that point.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > > > > > Andrew
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > On 2026/08/04 20:29:19 Andrew Schofield 
> > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > Hi Jun,
> > > > > > > > > > > > > > > > > > > Thanks for the response.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > JR1: My intent here is only request 
> > > > > > > > > > > > > > > > > > > logging. It
> > > > > > > would
> > > > > > > > > be
> > > > > > > > > > > > > > possible to
> > > > > > > > > > > > > > > > add
> > > > > > > > > > > > > > > > > > client-framework-name and 
> > > > > > > > > > > > > > > > > > client-framework-version
> > > > > > > to the
> > > > > > > > > > match
> > > > > > > > > > > > > > > > criteria
> > > > > > > > > > > > > > > > > > for client metrics, which could conceivably 
> > > > > > > > > > > > > > > > > > permit
> > > > > > > > > > scenarios
> > > > > > > > > > > > such
> > > > > > > > > > > > > > as
> > > > > > > > > > > > > > > > > > capturing metrics from specific versions of 
> > > > > > > > > > > > > > > > > > the
> > > > > > > Spring
> > > > > > > > > > > > framework.
> > > > > > > > > > > > > > This
> > > > > > > > > > > > > > > > is
> > > > > > > > > > > > > > > > > > beyond the scope I have in mind.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > JR3: Thanks for clarifying the tagged 
> > > > > > > > > > > > > > > > > > > field
> > > > > > > > > conventions.
> > > > > > > > > > > > Version
> > > > > > > > > > > > > > bump
> > > > > > > > > > > > > > > > > > reverted.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > > > > > > Andrew
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > On 2026/08/04 18:38:40 Jun Rao via dev 
> > > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > Hi, Andrew,
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Thanks for the reply.
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > JR1. ClientSoftwareName and
> > > > > > > ClientSoftwareVersion are
> > > > > > > > > > used
> > > > > > > > > > > > in
> > > > > > > > > > > > > > > > metric
> > > > > > > > > > > > > > > > > > names
> > > > > > > > > > > > > > > > > > > > and match predicates for configuring 
> > > > > > > > > > > > > > > > > > > > client
> > > > > > > metrics.
> > > > > > > > > > Are
> > > > > > > > > > > > > > > > > > ClientFrameworkName
> > > > > > > > > > > > > > > > > > > > and ClientFrameworkVersion used in 
> > > > > > > > > > > > > > > > > > > > those places
> > > > > > > too
> > > > > > > > > or
> > > > > > > > > > are
> > > > > > > > > > > > they
> > > > > > > > > > > > > > > > only
> > > > > > > > > > > > > > > > > > used
> > > > > > > > > > > > > > > > > > > > in request logging?
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > JR3. The general rule for adding a new 
> > > > > > > > > > > > > > > > > > > > field in
> > > > > > > RPC
> > > > > > > > > is
> > > > > > > > > > that
> > > > > > > > > > > > > > (1) if
> > > > > > > > > > > > > > > > it's
> > > > > > > > > > > > > > > > > > > > truly optional, we add it as a tagged 
> > > > > > > > > > > > > > > > > > > > field
> > > > > > with
> > > > > > > no
> > > > > > > > > > version
> > > > > > > > > > > > > > bump;
> > > > > > > > > > > > > > > > (2)
> > > > > > > > > > > > > > > > > > > > otherwise, we add it as a non-tagged 
> > > > > > > > > > > > > > > > > > > > field
> > > > > > with a
> > > > > > > > > > version
> > > > > > > > > > > > > > bump. One
> > > > > > > > > > > > > > > > > > > > exception is when adding a non-optional 
> > > > > > > > > > > > > > > > > > > > field
> > > > > > in
> > > > > > > the
> > > > > > > > > > > > request
> > > > > > > > > > > > > > > > header.
> > > > > > > > > > > > > > > > > > > > Because of the limitation in existing
> > > > > > > implementation,
> > > > > > > > > > we
> > > > > > > > > > > > need
> > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > add
> > > > > > > > > > > > > > > > > > it as
> > > > > > > > > > > > > > > > > > > > a tagged field with a version bump.
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Jun
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > On Tue, Aug 4, 2026 at 6:04 AM Andrew
> > > > > > Schofield <
> > > > > > > > > > > > > > > > [email protected]
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > Hi Jun,
> > > > > > > > > > > > > > > > > > > > > Thanks for your response.
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > JR1: I've expanded the motivation 
> > > > > > > > > > > > > > > > > > > > > section in
> > > > > > > the
> > > > > > > > > KIP.
> > > > > > > > > > > > They
> > > > > > > > > > > > > > are
> > > > > > > > > > > > > > > > truly
> > > > > > > > > > > > > > > > > > > > > optional, I feel. When diagnosing an 
> > > > > > > > > > > > > > > > > > > > > issue
> > > > > > > using
> > > > > > > > > the
> > > > > > > > > > > > client
> > > > > > > > > > > > > > logs,
> > > > > > > > > > > > > > > > > > having
> > > > > > > > > > > > > > > > > > > > > this information can illuminate why 
> > > > > > > > > > > > > > > > > > > > > the
> > > > > > > application
> > > > > > > > > > is
> > > > > > > > > > > > > > behaving
> > > > > > > > > > > > > > > > in a
> > > > > > > > > > > > > > > > > > > > > particular way. If the application is 
> > > > > > > > > > > > > > > > > > > > > using a
> > > > > > > > > > framework,
> > > > > > > > > > > > > > > > behaviours
> > > > > > > > > > > > > > > > > > such as
> > > > > > > > > > > > > > > > > > > > > retries will typically not be in the
> > > > > > > application
> > > > > > > > > code
> > > > > > > > > > > > itself
> > > > > > > > > > > > > > > > because
> > > > > > > > > > > > > > > > > > > > > they're implemented in the framework.
> > > > > > There's a
> > > > > > > > > > > > difference
> > > > > > > > > > > > > > > > between
> > > > > > > > > > > > > > > > > > what the
> > > > > > > > > > > > > > > > > > > > > application developer thinks their 
> > > > > > > > > > > > > > > > > > > > > code does
> > > > > > > and
> > > > > > > > > > what we
> > > > > > > > > > > > see
> > > > > > > > > > > > > > in
> > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > logs.
> > > > > > > > > > > > > > > > > > > > > That's the point.
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > JR2: Done. They're Type.STRING, 
> > > > > > > > > > > > > > > > > > > > > default
> > > > > > null. I
> > > > > > > > > think
> > > > > > > > > > > > they
> > > > > > > > > > > > > > > > should be
> > > > > > > > > > > > > > > > > > > > > importance LOW because that affects 
> > > > > > > > > > > > > > > > > > > > > the
> > > > > > > prominence
> > > > > > > > > > of the
> > > > > > > > > > > > > > > > configs in
> > > > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > > > > documentation, but I wonder whether 
> > > > > > > > > > > > > > > > > > > > > you
> > > > > > agree.
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > > > > > > > > Andrew
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > On 2026/08/03 21:39:06 Jun Rao via 
> > > > > > > > > > > > > > > > > > > > > dev wrote:
> > > > > > > > > > > > > > > > > > > > > > Hi, Andrew,
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > Thanks for the KIP.
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > JR1. Could you describe the use 
> > > > > > > > > > > > > > > > > > > > > > cases of
> > > > > > the
> > > > > > > two
> > > > > > > > > > new
> > > > > > > > > > > > > > configs
> > > > > > > > > > > > > > > > and
> > > > > > > > > > > > > > > > > > are they
> > > > > > > > > > > > > > > > > > > > > > truly optional?
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > JR2. Could you add the type and the 
> > > > > > > > > > > > > > > > > > > > > > default
> > > > > > > value
> > > > > > > > > > for
> > > > > > > > > > > > the
> > > > > > > > > > > > > > new
> > > > > > > > > > > > > > > > > > configs?
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > Jun
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > On Fri, Jul 31, 2026 at 10:23 AM 
> > > > > > > > > > > > > > > > > > > > > > Matthias
> > > > > > J.
> > > > > > > Sax
> > > > > > > > > <
> > > > > > > > > > > > > > > > [email protected]
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > Thanks for the KIP Andrew. I 
> > > > > > > > > > > > > > > > > > > > > > > think it
> > > > > > will
> > > > > > > be
> > > > > > > > > > very
> > > > > > > > > > > > > > useful if
> > > > > > > > > > > > > > > > we
> > > > > > > > > > > > > > > > > > can
> > > > > > > > > > > > > > > > > > > > > > > identify frameworks, especially 
> > > > > > > > > > > > > > > > > > > > > > > our own
> > > > > > > ones
> > > > > > > > > > > > (Connect and
> > > > > > > > > > > > > > > > > > Streams).
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > About Aditya's point: I am 
> > > > > > > > > > > > > > > > > > > > > > > wondering
> > > > > > where
> > > > > > > to
> > > > > > > > > > draw
> > > > > > > > > > > > the
> > > > > > > > > > > > > > line.
> > > > > > > > > > > > > > > > Many
> > > > > > > > > > > > > > > > > > > > > > > examples seems to be metadata that
> > > > > > belongs
> > > > > > > into
> > > > > > > > > > he
> > > > > > > > > > > > Kafka
> > > > > > > > > > > > > > > > record
> > > > > > > > > > > > > > > > > > > > > > > `Headers` at the application 
> > > > > > > > > > > > > > > > > > > > > > > level,
> > > > > > rather
> > > > > > > than
> > > > > > > > > > the
> > > > > > > > > > > > lower
> > > > > > > > > > > > > > > > level
> > > > > > > > > > > > > > > > > > request
> > > > > > > > > > > > > > > > > > > > > > > headers?
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > There if of course no strict 
> > > > > > > > > > > > > > > > > > > > > > > logical
> > > > > > > dividing
> > > > > > > > > > line
> > > > > > > > > > > > > > between
> > > > > > > > > > > > > > > > both.
> > > > > > > > > > > > > > > > > > And
> > > > > > > > > > > > > > > > > > > > > > > yes, the broker does not access
> > > > > > application
> > > > > > > > > level
> > > > > > > > > > > > Kafka
> > > > > > > > > > > > > > > > record
> > > > > > > > > > > > > > > > > > > > > > > `Headers`. But if it would be 
> > > > > > > > > > > > > > > > > > > > > > > useful to
> > > > > > > let the
> > > > > > > > > > > > broker
> > > > > > > > > > > > > > tap
> > > > > > > > > > > > > > > > into
> > > > > > > > > > > > > > > > > > > > > > > application level record 
> > > > > > > > > > > > > > > > > > > > > > > `Headers` we
> > > > > > > should
> > > > > > > > > > tackle
> > > > > > > > > > > > it
> > > > > > > > > > > > > > > > > > independently?
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > Personally, I don't think it 
> > > > > > > > > > > > > > > > > > > > > > > would be the
> > > > > > > right
> > > > > > > > > > > > design to
> > > > > > > > > > > > > > > > push
> > > > > > > > > > > > > > > > > > too many
> > > > > > > > > > > > > > > > > > > > > > > thing into the lower level request
> > > > > > > headers. So
> > > > > > > > > I
> > > > > > > > > > am
> > > > > > > > > > > > in
> > > > > > > > > > > > > > favor
> > > > > > > > > > > > > > > > of
> > > > > > > > > > > > > > > > > > only
> > > > > > > > > > > > > > > > > > > > > > > added the two new propose
> > > > > > > `ClientFrameworkName`
> > > > > > > > > > and
> > > > > > > > > > > > > > > > > > > > > > > `ClientFrameworkVersion` fields.
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > -Matthias
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > On 7/31/26 7:56 AM, Federico 
> > > > > > > > > > > > > > > > > > > > > > > Valeri
> > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > > > Changes look good. Thanks.
> > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > On Fri, Jul 31, 2026 at 11:17 
> > > > > > > > > > > > > > > > > > > > > > > > AM Andrew
> > > > > > > > > > Schofield <
> > > > > > > > > > > > > > > > > > > > > [email protected]>
> > > > > > > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > > >>
> > > > > > > > > > > > > > > > > > > > > > > >> Hi Fede,
> > > > > > > > > > > > > > > > > > > > > > > >> Thanks for your response.
> > > > > > > > > > > > > > > > > > > > > > > >>
> > > > > > > > > > > > > > > > > > > > > > > >> FV1: They are set using the 
> > > > > > > > > > > > > > > > > > > > > > > >> regular
> > > > > > > config
> > > > > > > > > > > > properties.
> > > > > > > > > > > > > > > > Yes,
> > > > > > > > > > > > > > > > > > it is
> > > > > > > > > > > > > > > > > > > > > > > possible for an end user to set 
> > > > > > > > > > > > > > > > > > > > > > > arbitrary
> > > > > > > > > > values, but
> > > > > > > > > > > > > > then
> > > > > > > > > > > > > > > > that
> > > > > > > > > > > > > > > > > > would
> > > > > > > > > > > > > > > > > > > > > also
> > > > > > > > > > > > > > > > > > > > > > > be true of a builder or internal
> > > > > > > constructor.
> > > > > > > > > > I've
> > > > > > > > > > > > added
> > > > > > > > > > > > > > a
> > > > > > > > > > > > > > > > bit
> > > > > > > > > > > > > > > > > > more
> > > > > > > > > > > > > > > > > > > > > > > information in the KIP and beefed 
> > > > > > > > > > > > > > > > > > > > > > > up the
> > > > > > > config
> > > > > > > > > > > > > > descriptions
> > > > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > > > > > > discourage
> > > > > > > > > > > > > > > > > > > > > > > application use.
> > > > > > > > > > > > > > > > > > > > > > > >>
> > > > > > > > > > > > > > > > > > > > > > > >> FV2: I've never encountered 
> > > > > > > > > > > > > > > > > > > > > > > >> such
> > > > > > > nightmares
> > > > > > > > > > > > myself.
> > > > > > > > > > > > > > The
> > > > > > > > > > > > > > > > > > framework
> > > > > > > > > > > > > > > > > > > > > which
> > > > > > > > > > > > > > > > > > > > > > > sets the config last would win. 
> > > > > > > > > > > > > > > > > > > > > > > Maybe
> > > > > > this
> > > > > > > is a
> > > > > > > > > > > > > > motivation
> > > > > > > > > > > > > > > > for
> > > > > > > > > > > > > > > > > > having a
> > > > > > > > > > > > > > > > > > > > > > > programmatic way of setting the
> > > > > > > information. We
> > > > > > > > > > could
> > > > > > > > > > > > > > support
> > > > > > > > > > > > > > > > > > > > > concatenation
> > > > > > > > > > > > > > > > > > > > > > > of framework information, but 
> > > > > > > > > > > > > > > > > > > > > > > that's just
> > > > > > > > > > pandering
> > > > > > > > > > > > to
> > > > > > > > > > > > > > these
> > > > > > > > > > > > > > > > > > people.
> > > > > > > > > > > > > > > > > > > > > Let me
> > > > > > > > > > > > > > > > > > > > > > > know what you think.
> > > > > > > > > > > > > > > > > > > > > > > >>
> > > > > > > > > > > > > > > > > > > > > > > >> I've also updated the KIP with 
> > > > > > > > > > > > > > > > > > > > > > > >> a
> > > > > > maximum
> > > > > > > > > > length
> > > > > > > > > > > > for
> > > > > > > > > > > > > > these
> > > > > > > > > > > > > > > > > > pieces of
> > > > > > > > > > > > > > > > > > > > > > > information since all identifiers 
> > > > > > > > > > > > > > > > > > > > > > > should
> > > > > > > have
> > > > > > > > > > defined
> > > > > > > > > > > > > > bounds.
> > > > > > > > > > > > > > > > > > > > > > > >>
> > > > > > > > > > > > > > > > > > > > > > > >> Thanks,
> > > > > > > > > > > > > > > > > > > > > > > >> Andrew
> > > > > > > > > > > > > > > > > > > > > > > >>
> > > > > > > > > > > > > > > > > > > > > > > >> On 2026/07/31 08:50:11 
> > > > > > > > > > > > > > > > > > > > > > > >> Federico Valeri
> > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > > >>> Hi Andrew, the motivation 
> > > > > > > > > > > > > > > > > > > > > > > >>> looks
> > > > > > good. A
> > > > > > > > > > couple of
> > > > > > > > > > > > > > > > questions:
> > > > > > > > > > > > > > > > > > > > > > > >>>
> > > > > > > > > > > > > > > > > > > > > > > >>> FV1: The KIP says frameworks 
> > > > > > > > > > > > > > > > > > > > > > > >>> should
> > > > > > set
> > > > > > > > > them,
> > > > > > > > > > > > but it
> > > > > > > > > > > > > > > > does not
> > > > > > > > > > > > > > > > > > > > > specify
> > > > > > > > > > > > > > > > > > > > > > > >>> the mechanism. If these are 
> > > > > > > > > > > > > > > > > > > > > > > >>> ordinary
> > > > > > > > > > user-facing
> > > > > > > > > > > > > > configs,
> > > > > > > > > > > > > > > > > > nothing
> > > > > > > > > > > > > > > > > > > > > > > >>> prevents an end user from 
> > > > > > > > > > > > > > > > > > > > > > > >>> setting
> > > > > > > arbitrary
> > > > > > > > > > > > values,
> > > > > > > > > > > > > > which
> > > > > > > > > > > > > > > > > > defeats
> > > > > > > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > > > > > > >>> purpose. Should the framework 
> > > > > > > > > > > > > > > > > > > > > > > >>> set
> > > > > > them
> > > > > > > > > > > > > > programmatically
> > > > > > > > > > > > > > > > > > (builder or
> > > > > > > > > > > > > > > > > > > > > > > >>>    internal constructor) or 
> > > > > > > > > > > > > > > > > > > > > > > >>> is user
> > > > > > > > > override
> > > > > > > > > > > > > > intentional?
> > > > > > > > > > > > > > > > > > > > > > > >>>
> > > > > > > > > > > > > > > > > > > > > > > >>> FV2: What if we have multiple 
> > > > > > > > > > > > > > > > > > > > > > > >>> layers
> > > > > > of
> > > > > > > > > > > > frameworks?
> > > > > > > > > > > > > > Let's
> > > > > > > > > > > > > > > > > > say a
> > > > > > > > > > > > > > > > > > > > > custom
> > > > > > > > > > > > > > > > > > > > > > > >>> framework on top of 
> > > > > > > > > > > > > > > > > > > > > > > >>> SpringBoot. I've
> > > > > > > seen
> > > > > > > > > > similar
> > > > > > > > > > > > > > > > nightmares
> > > > > > > > > > > > > > > > > > in the
> > > > > > > > > > > > > > > > > > > > > > > >>> past.
> > > > > > > > > > > > > > > > > > > > > > > >>>
> > > > > > > > > > > > > > > > > > > > > > > >>> Thanks
> > > > > > > > > > > > > > > > > > > > > > > >>> Fede
> > > > > > > > > > > > > > > > > > > > > > > >>>
> > > > > > > > > > > > > > > > > > > > > > > >>> On Tue, Jul 28, 2026 at 8:27 
> > > > > > > > > > > > > > > > > > > > > > > >>> AM
> > > > > > Aditya
> > > > > > > > > > Kousik <
> > > > > > > > > > > > > > > > > > > > > [email protected]>
> > > > > > > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> Hi Andrew,
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> We’re definitely agreed on 
> > > > > > > > > > > > > > > > > > > > > > > >>>> the
> > > > > > > increased
> > > > > > > > > > use of
> > > > > > > > > > > > > > > > frameworks
> > > > > > > > > > > > > > > > > > over
> > > > > > > > > > > > > > > > > > > > > than
> > > > > > > > > > > > > > > > > > > > > > > the client directly. I’ve cited 
> > > > > > > > > > > > > > > > > > > > > > > the
> > > > > > > different
> > > > > > > > > > > > patterns
> > > > > > > > > > > > > > > > Spring,
> > > > > > > > > > > > > > > > > > > > > Micronaut,
> > > > > > > > > > > > > > > > > > > > > > > smallrye and company-internal 
> > > > > > > > > > > > > > > > > > > > > > > frameworks
> > > > > > > have
> > > > > > > > > > APIs
> > > > > > > > > > > > built
> > > > > > > > > > > > > > on
> > > > > > > > > > > > > > > > top
> > > > > > > > > > > > > > > > > > of the
> > > > > > > > > > > > > > > > > > > > > > > Kafka client, in a couple of KIPs
> > > > > > already.
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> The project has enough 
> > > > > > > > > > > > > > > > > > > > > > > >>>> traction
> > > > > > that I
> > > > > > > > > > think of
> > > > > > > > > > > > it
> > > > > > > > > > > > > > as
> > > > > > > > > > > > > > > > its
> > > > > > > > > > > > > > > > > > own
> > > > > > > > > > > > > > > > > > > > > network
> > > > > > > > > > > > > > > > > > > > > > > client with distributed log 
> > > > > > > > > > > > > > > > > > > > > > > semantics for
> > > > > > > which
> > > > > > > > > > > > > > frameworks
> > > > > > > > > > > > > > > > are
> > > > > > > > > > > > > > > > > > written,
> > > > > > > > > > > > > > > > > > > > > > > much like gRPC over netty. People 
> > > > > > > > > > > > > > > > > > > > > > > want to
> > > > > > > just
> > > > > > > > > > write
> > > > > > > > > > > > the
> > > > > > > > > > > > > > > > business
> > > > > > > > > > > > > > > > > > > > > logic and
> > > > > > > > > > > > > > > > > > > > > > > leave the plumbing and threading 
> > > > > > > > > > > > > > > > > > > > > > > to the
> > > > > > > > > > frameworks.
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> All of this to say, I’m fine 
> > > > > > > > > > > > > > > > > > > > > > > >>>> to ship
> > > > > > > the
> > > > > > > > > > client
> > > > > > > > > > > > > > > > framework
> > > > > > > > > > > > > > > > > > as the
> > > > > > > > > > > > > > > > > > > > > new
> > > > > > > > > > > > > > > > > > > > > > > identifying parameter for 
> > > > > > > > > > > > > > > > > > > > > > > frameworks to
> > > > > > > set. It
> > > > > > > > > > will
> > > > > > > > > > > > be
> > > > > > > > > > > > > > > > mighty
> > > > > > > > > > > > > > > > > > useful.
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> My addendum, rather than a 
> > > > > > > > > > > > > > > > > > > > > > > >>>> pushback
> > > > > > is
> > > > > > > > > that:
> > > > > > > > > > > > guilty
> > > > > > > > > > > > > > as
> > > > > > > > > > > > > > > > > > charged,
> > > > > > > > > > > > > > > > > > > > > I’m
> > > > > > > > > > > > > > > > > > > > > > > driven by the otel/DD
> > > > > > > telemetry/observability
> > > > > > > > > of
> > > > > > > > > > > > using
> > > > > > > > > > > > > > Apache
> > > > > > > > > > > > > > > > > > Kafka in
> > > > > > > > > > > > > > > > > > > > > > > applications. The
> > > > > > client.framework.version
> > > > > > > > > > config for
> > > > > > > > > > > > > > > > instance
> > > > > > > > > > > > > > > > > > can be
> > > > > > > > > > > > > > > > > > > > > used
> > > > > > > > > > > > > > > > > > > > > > > to detect regressions and isolate 
> > > > > > > > > > > > > > > > > > > > > > > root
> > > > > > > causes.
> > > > > > > > > > But I
> > > > > > > > > > > > > > feel it
> > > > > > > > > > > > > > > > is
> > > > > > > > > > > > > > > > > > only
> > > > > > > > > > > > > > > > > > > > > one of
> > > > > > > > > > > > > > > > > > > > > > > many such facets. You mentioned 
> > > > > > > > > > > > > > > > > > > > > > > that you
> > > > > > > would
> > > > > > > > > > use
> > > > > > > > > > > > > > client.id
> > > > > > > > > > > > > > > > and
> > > > > > > > > > > > > > > > > > > > > > > clientInstanceId to identify a 
> > > > > > > > > > > > > > > > > > > > > > > client but
> > > > > > > that
> > > > > > > > > > these
> > > > > > > > > > > > do
> > > > > > > > > > > > > > not
> > > > > > > > > > > > > > > > help
> > > > > > > > > > > > > > > > > > with
> > > > > > > > > > > > > > > > > > > > > > > aggregate/fleet-wide issues. As an
> > > > > > > example, if
> > > > > > > > > I
> > > > > > > > > > tag
> > > > > > > > > > > > an
> > > > > > > > > > > > > > > > app’s AZ
> > > > > > > > > > > > > > > > > > it can
> > > > > > > > > > > > > > > > > > > > > > > help me write alerts on spike in 
> > > > > > > > > > > > > > > > > > > > > > > latency
> > > > > > in
> > > > > > > > > > > > us-west-2.
> > > > > > > > > > > > > > Or,
> > > > > > > > > > > > > > > > > > detect stuck
> > > > > > > > > > > > > > > > > > > > > > > partitions across multiple
> > > > > > > > > > > > client.id/application.names
> > > > > > > > > > > > > > none
> > > > > > > > > > > > > > > > of
> > > > > > > > > > > > > > > > > > whom
> > > > > > > > > > > > > > > > > > > > > share
> > > > > > > > > > > > > > > > > > > > > > > the same client.framework.name.
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> Other tags that come to mind:
> > > > > > > > > > application.name,
> > > > > > > > > > > > az,
> > > > > > > > > > > > > > > > team,
> > > > > > > > > > > > > > > > > > env,
> > > > > > > > > > > > > > > > > > > > > rack.
> > > > > > > > > > > > > > > > > > > > > > > All fields users usually hijack
> > > > > > client.id
> > > > > > > for.
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> An otel JavaAgent can 
> > > > > > > > > > > > > > > > > > > > > > > >>>> capture the
> > > > > > > client
> > > > > > > > > > > > metadata
> > > > > > > > > > > > > > > > > > registered and
> > > > > > > > > > > > > > > > > > > > > > > attach it as tags with each 
> > > > > > > > > > > > > > > > > > > > > > > resource
> > > > > > span.
> > > > > > > > > Users
> > > > > > > > > > who
> > > > > > > > > > > > use
> > > > > > > > > > > > > > > > > > frameworks but
> > > > > > > > > > > > > > > > > > > > > > > rely on datadog/otel will get 
> > > > > > > > > > > > > > > > > > > > > > > visibility
> > > > > > > into
> > > > > > > > > the
> > > > > > > > > > > > client
> > > > > > > > > > > > > > > > > > metadata for
> > > > > > > > > > > > > > > > > > > > > free.
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> The KIP as I read it, serves 
> > > > > > > > > > > > > > > > > > > > > > > >>>> as a
> > > > > > > > > > foundation for
> > > > > > > > > > > > > > future
> > > > > > > > > > > > > > > > > > use. So I
> > > > > > > > > > > > > > > > > > > > > > > don’t want to shoehorn a new 
> > > > > > > > > > > > > > > > > > > > > > > behaviour if
> > > > > > > it
> > > > > > > > > > > > explodes the
> > > > > > > > > > > > > > > > scope
> > > > > > > > > > > > > > > > > > too
> > > > > > > > > > > > > > > > > > > > > much.
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> Best regards,
> > > > > > > > > > > > > > > > > > > > > > > >>>> Aditya
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> On Jul 27, 2026, at 13:52, 
> > > > > > > > > > > > > > > > > > > > > > > >>>>> Andrew
> > > > > > > > > > Schofield <
> > > > > > > > > > > > > > > > > > > > > [email protected]>
> > > > > > > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> Hi Aditya,
> > > > > > > > > > > > > > > > > > > > > > > >>>>> Thanks for your response.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> AK1: I chose framework as 
> > > > > > > > > > > > > > > > > > > > > > > >>>>> the
> > > > > > blessed
> > > > > > > > > > > > abstraction
> > > > > > > > > > > > > > > > because
> > > > > > > > > > > > > > > > > > my
> > > > > > > > > > > > > > > > > > > > > focus
> > > > > > > > > > > > > > > > > > > > > > > was problem determination for 
> > > > > > > > > > > > > > > > > > > > > > > client
> > > > > > > > > > applications. We
> > > > > > > > > > > > > > often
> > > > > > > > > > > > > > > > find
> > > > > > > > > > > > > > > > > > that
> > > > > > > > > > > > > > > > > > > > > users
> > > > > > > > > > > > > > > > > > > > > > > with client problems have not 
> > > > > > > > > > > > > > > > > > > > > > > coded
> > > > > > > directly to
> > > > > > > > > > the
> > > > > > > > > > > > Kafka
> > > > > > > > > > > > > > > > client
> > > > > > > > > > > > > > > > > > > > > interface
> > > > > > > > > > > > > > > > > > > > > > > because they are using a 
> > > > > > > > > > > > > > > > > > > > > > > framework. As a
> > > > > > > > > result,
> > > > > > > > > > > > their
> > > > > > > > > > > > > > > > knowledge
> > > > > > > > > > > > > > > > > > of the
> > > > > > > > > > > > > > > > > > > > > > > application code is one level 
> > > > > > > > > > > > > > > > > > > > > > > removed
> > > > > > from
> > > > > > > the
> > > > > > > > > > Kafka
> > > > > > > > > > > > > > client.
> > > > > > > > > > > > > > > > > > > > > Frameworks can
> > > > > > > > > > > > > > > > > > > > > > > override configuration defaults,
> > > > > > introduce
> > > > > > > > > > different
> > > > > > > > > > > > > > retry
> > > > > > > > > > > > > > > > > > behaviour
> > > > > > > > > > > > > > > > > > > > > and so
> > > > > > > > > > > > > > > > > > > > > > > on. Lots of companies have their 
> > > > > > > > > > > > > > > > > > > > > > > own
> > > > > > > internal
> > > > > > > > > > > > > > frameworks, so
> > > > > > > > > > > > > > > > > > this KIP
> > > > > > > > > > > > > > > > > > > > > can
> > > > > > > > > > > > > > > > > > > > > > > be used by them too. I'm trying 
> > > > > > > > > > > > > > > > > > > > > > > to make
> > > > > > it
> > > > > > > > > > easier to
> > > > > > > > > > > > > > work out
> > > > > > > > > > > > > > > > > > when a
> > > > > > > > > > > > > > > > > > > > > user
> > > > > > > > > > > > > > > > > > > > > > > is making use of a framework and 
> > > > > > > > > > > > > > > > > > > > > > > knowing
> > > > > > > what
> > > > > > > > > it
> > > > > > > > > > is.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> Sometimes, particularly for
> > > > > > non-Java
> > > > > > > > > > clients,
> > > > > > > > > > > > > > people
> > > > > > > > > > > > > > > > have
> > > > > > > > > > > > > > > > > > > > > overridden
> > > > > > > > > > > > > > > > > > > > > > > the ClientSoftwareName/Version
> > > > > > themselves,
> > > > > > > > > which
> > > > > > > > > > > > makes
> > > > > > > > > > > > > > those
> > > > > > > > > > > > > > > > > > concepts
> > > > > > > > > > > > > > > > > > > > > much
> > > > > > > > > > > > > > > > > > > > > > > less useful than they should be. 
> > > > > > > > > > > > > > > > > > > > > > > By
> > > > > > > providing
> > > > > > > > > > > > > > > > > > > > > ClientFrameworkName/Version,
> > > > > > > > > > > > > > > > > > > > > > > there is no longer any need to do 
> > > > > > > > > > > > > > > > > > > > > > > so.
> > > > > > > That's
> > > > > > > > > > another
> > > > > > > > > > > > > > > > motivation
> > > > > > > > > > > > > > > > > > here,
> > > > > > > > > > > > > > > > > > > > > even
> > > > > > > > > > > > > > > > > > > > > > > though KIPs don't concern 
> > > > > > > > > > > > > > > > > > > > > > > themselves with
> > > > > > > > > > non-Java
> > > > > > > > > > > > > > clients as
> > > > > > > > > > > > > > > > > > such.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> We could go for a more 
> > > > > > > > > > > > > > > > > > > > > > > >>>>> flexible
> > > > > > > key-value
> > > > > > > > > > > > approach,
> > > > > > > > > > > > > > > > but a
> > > > > > > > > > > > > > > > > > simple
> > > > > > > > > > > > > > > > > > > > > > > name and version is sufficient 
> > > > > > > > > > > > > > > > > > > > > > > for what I
> > > > > > > had
> > > > > > > > > in
> > > > > > > > > > > > mind.
> > > > > > > > > > > > > > Feel
> > > > > > > > > > > > > > > > free
> > > > > > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > > > > > > push
> > > > > > > > > > > > > > > > > > > > > > > back with additional 
> > > > > > > > > > > > > > > > > > > > > > > justification and
> > > > > > > > > examples.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> AK2: Done.
> > > > > > > > > > o.a.k.clients.CommonClientConfigs.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> AK3: To identify a 
> > > > > > > > > > > > > > > > > > > > > > > >>>>> particular
> > > > > > > client, I
> > > > > > > > > > would
> > > > > > > > > > > > use
> > > > > > > > > > > > > > > > client
> > > > > > > > > > > > > > > > > > ID and
> > > > > > > > > > > > > > > > > > > > > > > client-instance ID. I think these 
> > > > > > > > > > > > > > > > > > > > > > > are
> > > > > > > generally
> > > > > > > > > > more
> > > > > > > > > > > > > > useful
> > > > > > > > > > > > > > > > > > concepts
> > > > > > > > > > > > > > > > > > > > > than
> > > > > > > > > > > > > > > > > > > > > > > the framework name and version 
> > > > > > > > > > > > > > > > > > > > > > > which are
> > > > > > > extra
> > > > > > > > > > > > > > information
> > > > > > > > > > > > > > > > for
> > > > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > > > > person
> > > > > > > > > > > > > > > > > > > > > > > trying to figure out why a client 
> > > > > > > > > > > > > > > > > > > > > > > is not
> > > > > > > > > > behaving as
> > > > > > > > > > > > > > > > expected.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> AK4: I'm sure you have more
> > > > > > > experience of
> > > > > > > > > > > > > > OTel/DataDog
> > > > > > > > > > > > > > > > > > > > > collectors.
> > > > > > > > > > > > > > > > > > > > > > > You may well be correct that they 
> > > > > > > > > > > > > > > > > > > > > > > would
> > > > > > be
> > > > > > > > > > helpful
> > > > > > > > > > > > for
> > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > collectors.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> Thanks,
> > > > > > > > > > > > > > > > > > > > > > > >>>>> Andrew
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> On 2026/07/26 07:48:20 
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> Aditya
> > > > > > Kousik
> > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> Hello Andrew,
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> I’m reminded of the 
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> client.id
> > > > > > > > > discussion
> > > > > > > > > > we
> > > > > > > > > > > > had
> > > > > > > > > > > > > > back
> > > > > > > > > > > > > > > > in
> > > > > > > > > > > > > > > > > > > > > KIP-1313
> > > > > > > > > > > > > > > > > > > > > > > re: client instance id. After that
> > > > > > > discussion,
> > > > > > > > > I
> > > > > > > > > > > > have a
> > > > > > > > > > > > > > WIP
> > > > > > > > > > > > > > > > KIP
> > > > > > > > > > > > > > > > > > that
> > > > > > > > > > > > > > > > > > > > > sets a
> > > > > > > > > > > > > > > > > > > > > > > foundation for shipping client 
> > > > > > > > > > > > > > > > > > > > > > > metadata
> > > > > > > tags to
> > > > > > > > > > be
> > > > > > > > > > > > sent
> > > > > > > > > > > > > > for
> > > > > > > > > > > > > > > > > > telemetry.
> > > > > > > > > > > > > > > > > > > > > I
> > > > > > > > > > > > > > > > > > > > > > > was hoping we could discuss if 
> > > > > > > > > > > > > > > > > > > > > > > part of
> > > > > > that
> > > > > > > > > > approach
> > > > > > > > > > > > > > could
> > > > > > > > > > > > > > > > fit
> > > > > > > > > > > > > > > > > > this
> > > > > > > > > > > > > > > > > > > > > KIP.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> AK1. I had a note on the
> > > > > > motivation
> > > > > > > of
> > > > > > > > > > > > selecting a
> > > > > > > > > > > > > > > > > > “framework”
> > > > > > > > > > > > > > > > > > > > > as a
> > > > > > > > > > > > > > > > > > > > > > > blessed abstraction. The KIP 
> > > > > > > > > > > > > > > > > > > > > > > mentions
> > > > > > it’s
> > > > > > > for
> > > > > > > > > > the
> > > > > > > > > > > > client
> > > > > > > > > > > > > > > > > > metadata and
> > > > > > > > > > > > > > > > > > > > > > > easier problem diagnosis. This is 
> > > > > > > > > > > > > > > > > > > > > > > akin to
> > > > > > > an
> > > > > > > > > > > > > > “application id”
> > > > > > > > > > > > > > > > > > that
> > > > > > > > > > > > > > > > > > > > > > > non-framework clients usually tag 
> > > > > > > > > > > > > > > > > > > > > > > with.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> KIP-606 took an approach 
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> like
> > > > > > > > > > > > > > > > > > metrics.context.<key>=<val>. If we
> > > > > > > > > > > > > > > > > > > > > > > allow 
> > > > > > > > > > > > > > > > > > > > > > > client.metadata.<key>=<val>, then 
> > > > > > > > > > > > > > > > > > > > > > > a
> > > > > > > > > > > > > > > > framework/application
> > > > > > > > > > > > > > > > > > name
> > > > > > > > > > > > > > > > > > > > > and
> > > > > > > > > > > > > > > > > > > > > > > version can sit in such a metadata
> > > > > > context
> > > > > > > and
> > > > > > > > > be
> > > > > > > > > > > > sent
> > > > > > > > > > > > > > with
> > > > > > > > > > > > > > > > > > ApiVersion
> > > > > > > > > > > > > > > > > > > > > RPC.
> > > > > > > > > > > > > > > > > > > > > > > Of course, this is an open box 
> > > > > > > > > > > > > > > > > > > > > > > approach
> > > > > > > rather
> > > > > > > > > > than
> > > > > > > > > > > > just
> > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > framework
> > > > > > > > > > > > > > > > > > > > > > > name/version (just two fields) 
> > > > > > > > > > > > > > > > > > > > > > > we’re
> > > > > > > adding to
> > > > > > > > > > the
> > > > > > > > > > > > > > protocol.
> > > > > > > > > > > > > > > > But
> > > > > > > > > > > > > > > > > > I’m
> > > > > > > > > > > > > > > > > > > > > > > curious about the tier of 
> > > > > > > > > > > > > > > > > > > > > > > importance of
> > > > > > > > > framework
> > > > > > > > > > > > alone.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> AK2. Can you clarify if 
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> this
> > > > > > config
> > > > > > > goes
> > > > > > > > > > into
> > > > > > > > > > > > > > > > > > > > > > > CommonClientConfigs.java, 
> > > > > > > > > > > > > > > > > > > > > > > referenced
> > > > > > across
> > > > > > > > > > > > > > > > > > producer/consumer/share
> > > > > > > > > > > > > > > > > > > > > etc? I
> > > > > > > > > > > > > > > > > > > > > > > know some share props have the 
> > > > > > > > > > > > > > > > > > > > > > > “share.”
> > > > > > > prefix
> > > > > > > > > > going.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> AK3. In another thread you
> > > > > > mentioned
> > > > > > > > > that
> > > > > > > > > > the
> > > > > > > > > > > > > > broker
> > > > > > > > > > > > > > > > may
> > > > > > > > > > > > > > > > > > add it
> > > > > > > > > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > > > > > > > > the request context. In client 
> > > > > > > > > > > > > > > > > > > > > > > logs,
> > > > > > > clientId
> > > > > > > > > is
> > > > > > > > > > a
> > > > > > > > > > > > very
> > > > > > > > > > > > > > > > useful
> > > > > > > > > > > > > > > > > > string
> > > > > > > > > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > > > > > > > > identify WARN logs when things go
> > > > > > sideways
> > > > > > > like
> > > > > > > > > > > > broker
> > > > > > > > > > > > > > > > > > disconnected,
> > > > > > > > > > > > > > > > > > > > > > > rebalance in progress etc. Can 
> > > > > > > > > > > > > > > > > > > > > > > you cherry
> > > > > > > pick
> > > > > > > > > > and
> > > > > > > > > > > > > > highlight
> > > > > > > > > > > > > > > > some
> > > > > > > > > > > > > > > > > > > > > useful
> > > > > > > > > > > > > > > > > > > > > > > log places that these strings can 
> > > > > > > > > > > > > > > > > > > > > > > go? I
> > > > > > > suppose
> > > > > > > > > > > > adding
> > > > > > > > > > > > > > > > > > > > > clientId/framework
> > > > > > > > > > > > > > > > > > > > > > > to the MDC context might be too
> > > > > > voluminous.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> AK4. I foresee collectors 
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> like
> > > > > > > > > > Datadog/OTel
> > > > > > > > > > > > might
> > > > > > > > > > > > > > find
> > > > > > > > > > > > > > > > > > these
> > > > > > > > > > > > > > > > > > > > > tags
> > > > > > > > > > > > > > > > > > > > > > > useful in each span exported.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> Looking forward to your 
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> thoughts
> > > > > > on
> > > > > > > > > this.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> Regards,
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> Aditya
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>>> On Jul 17, 2026, at 
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>>> 11:53,
> > > > > > Andrew
> > > > > > > > > > Schofield
> > > > > > > > > > > > <
> > > > > > > > > > > > > > > > > > > > > > > [email protected]>
> > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>> Hi,
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>> I'd like to open 
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>> discussion on
> > > > > > > > > KIP-1368:
> > > > > > > > > > > > Client
> > > > > > > > > > > > > > > > > > framework name
> > > > > > > > > > > > > > > > > > > > > and
> > > > > > > > > > > > > > > > > > > > > > > version.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>> Applications often use
> > > > > > application
> > > > > > > > > > frameworks
> > > > > > > > > > > > > > such as
> > > > > > > > > > > > > > > > > > Spring to
> > > > > > > > > > > > > > > > > > > > > > > connect to Kafka. To assist with 
> > > > > > > > > > > > > > > > > > > > > > > problem
> > > > > > > > > > diagnosis,
> > > > > > > > > > > > this
> > > > > > > > > > > > > > KIP
> > > > > > > > > > > > > > > > > > > > > introduces a
> > > > > > > > > > > > > > > > > > > > > > > way to provide the framework name 
> > > > > > > > > > > > > > > > > > > > > > > and
> > > > > > > version


On Tue, Sep 29, 2026 at 3:28 PM Andrew Schofield <[email protected]> wrote:
>
> Hi Lianet,
> Thanks for your response.
>
> LM3: I'm opposed to arbitrary concatenation because it makes it impossible
> to do sensible matching and the like. If we did the following, that would be
> fine:
>
> * Kafka Connect uses org.apache.kafka.connect+your.connector.class.name.here
> for framework name, and x.y.z+a.b.c for framework version.
> * Explicitly prevent overriding of these configs by the connectors. Kafka
> Connect owns the configs, not the connectors.
>
> Then we get flexibility and sanity together. Maybe that's the best way 
> forward.
>
> I'll see whether consensus emerges before updating the KIP.
>
> Thanks,
> Andrew
>
> On 2026/09/29 19:06:48 Lianet Magrans wrote:
> > One more detail (again related to Chris' comment):
> >
> > LM3:  if we want to leave the door open for concatenations, we relax
> > the validations to allow + (Chris used the connect example "client
> > framework of
> > "org.apache.kafka.connect+com.acme.FooConnector" and a version of
> > "4.4.0+1.2.3"), but something like that wouldn't be allowed with the
> > current regex.
> >
> > Thanks,
> > Lianet
> >
> > On Tue, Sep 29, 2026 at 2:50 PM Lianet Magrans <[email protected]> wrote:
> > >
> > > Hi Andrew,
> > >
> > > LM1: Just checking that it's intentional that the new methods added to
> > > the ClientTelemetryContext interface have no default implementation?
> > > It will break implementations but I guess we're relying on the fact
> > > that implementations live in the broker itself?
> > >
> > > LM2: related to Chris' comments and the overrides, if we have an app
> > > setting the config and the framwork setting it internally too, seems
> > > we're saying the user config wins?
> > >
> > > Thanks!
> > > Lianet
> > >
> > > On Tue, Sep 29, 2026 at 2:26 PM Andrew Schofield <[email protected]> 
> > > wrote:
> > > >
> > > > Hi Chris,
> > > > Thanks for your message.
> > > >
> > > > 1. I don't want to pander to people who want to concatenate identifiers.
> > > > We could have ConnectorName and ConnectorVersion fields along the same
> > > > lines as the SoftwareFrameworkName and SoftwareFrameworkVersion. That
> > > > would be a cleaner way of doing it. Maybe we can come up with a concrete
> > > > proposal easily, but the risk is that we end up adding a heap of other
> > > > Connect concepts too and that's way beyond the original intent of the 
> > > > KIP.
> > > > Let me know what you think.
> > > >
> > > > 2. There is nothing to prevent a connector config overriding these
> > > > configs. Do you think this is something thet should be prevented to
> > > > dissuade the kind of shenanigans that you illustrated with 
> > > > concatenation?
> > > >
> > > > Thanks,
> > > > Andrew
> > > >
> > > > On 2026/09/28 21:57:43 Chris Egerton wrote:
> > > > > Hi,
> > > > >
> > > > > Forgive me if this is already addressed; there's a lot of context 
> > > > > here and
> > > > > I haven't read the entire thread. I think the section on Kafka 
> > > > > Connect is a
> > > > > little thin at the moment.
> > > > >
> > > > > 1. The type and version of the connector is important information and 
> > > > > it'd
> > > > > be nice if there were a way to include that. This could be done by
> > > > > embedding the relevant information inside the strings for the proposed
> > > > > properties; e.g., a client framework of
> > > > > "org.apache.kafka.connect+com.acme.FooConnector" and a version of
> > > > > "4.4.0+1.2.3" (where the Kafka Connect runtime version is first and 
> > > > > the
> > > > > connector's version is second); however, that feels like a hack (a
> > > > > sentiment Andrew seems to share given this remark: "We could support
> > > > > concatenation of framework information, but that's just pandering to 
> > > > > these
> > > > > people.").
> > > > >
> > > > > 2. Would users be allowed to override either the framework or version 
> > > > > by
> > > > > explicitly setting values for them in a connector config, e.g., "
> > > > > producer.override.client.framework.name"?
> > > > >
> > > > > Cheers,
> > > > >
> > > > > Chris
> > > > >
> > > > > On Mon, Sep 28, 2026 at 5:33 PM Lianet Magrans <[email protected]> 
> > > > > wrote:
> > > > >
> > > > > > Ok, good that the concept was already considered. I will bring it 
> > > > > > up for
> > > > > > discussion soon with KIP-1324 then.
> > > > > >
> > > > > > Thanks!
> > > > > > Lianet
> > > > > >
> > > > > > On Mon, Sep 28, 2026, 2:18 p.m. Andrew Schofield 
> > > > > > <[email protected]>
> > > > > > wrote:
> > > > > >
> > > > > > > Hi Lianet,
> > > > > > > Thanks for your response.
> > > > > > >
> > > > > > > I did discuss something similar with Matthias but decided that we 
> > > > > > > weren't
> > > > > > > quite ready to commit to a specific behaviour in this KIP. I 
> > > > > > > suggest that
> > > > > > > you include it in KIP-1324. There's a strong chance that KIPs 
> > > > > > > 1313, 1368
> > > > > > > and 1324 all land in the same 4.5 release, and that will mean the 
> > > > > > > RPC
> > > > > > > changes can be coalesced into the same version bump.
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Andrew
> > > > > > >
> > > > > > > On 2026/09/28 17:38:12 Lianet Magrans wrote:
> > > > > > > > Hi Andrew, just one question here, did we consider identifying 
> > > > > > > > not just
> > > > > > > the
> > > > > > > > framework type and version, but also the "framework instance"? 
> > > > > > > > Similar
> > > > > > to
> > > > > > > > what KIP-1313 did for clients (UUID for 
> > > > > > > > consumer/prodcuer/admin), but
> > > > > > > > closing the loop to have a way to identify instances of this new
> > > > > > "logical
> > > > > > > > client" which is the framework.
> > > > > > > >
> > > > > > > > That would be useful the moment we have several instances of the
> > > > > > > > "framework" running together I expect, e.g., several streams 
> > > > > > > > instances,
> > > > > > > > KIP-1313 would give us UUIDs for all the 
> > > > > > > > consumers/producer/admins
> > > > > > > running
> > > > > > > > underneath, and KIP-1368 tell us they are behind a "logical
> > > > > > > > client"/framework" ("streams"), but no way to tell here one of 
> > > > > > > > the
> > > > > > > > "streams" framwork instances from the other one. Streams 
> > > > > > > > already has a
> > > > > > > > process ID that fills that gap, the point to consider is if it's
> > > > > > > something
> > > > > > > > we would want along with the framework type.
> > > > > > > >
> > > > > > > > I'm thinking about this coming from KIP-1324 btw (pushing 
> > > > > > > > configs from
> > > > > > > the
> > > > > > > > client to the broker). For features like that, seems useful to 
> > > > > > > > identify
> > > > > > > not
> > > > > > > > only the framework type, but also the "framework instance".  
> > > > > > > > I'm happy
> > > > > > to
> > > > > > > > consider it as part of KIP-1324 (that I plan to resume soon), 
> > > > > > > > but
> > > > > > raising
> > > > > > > > it for consideration, as it's closely related to the framework 
> > > > > > > > type.
> > > > > > > >
> > > > > > > > Thanks!
> > > > > > > > Lianet
> > > > > > > >
> > > > > > > > On Thu, Sep 24, 2026 at 2:45 PM Jun Rao via dev 
> > > > > > > > <[email protected]>
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > > Hi, Andrew,
> > > > > > > > >
> > > > > > > > > Thanks for the updated KIP. LGTM
> > > > > > > > >
> > > > > > > > > Jun
> > > > > > > > >
> > > > > > > > > On Thu, Sep 24, 2026 at 10:58 AM Andrew Schofield <
> > > > > > > [email protected]>
> > > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > Hi Jun,
> > > > > > > > > >
> > > > > > > > > > JR7: Done.
> > > > > > > > > >
> > > > > > > > > > Thanks,
> > > > > > > > > > Andrew
> > > > > > > > > >
> > > > > > > > > > On 2026/09/24 16:20:08 Jun Rao via dev wrote:
> > > > > > > > > > > Hi, Andrew,
> > > > > > > > > > >
> > > > > > > > > > > Thanks for the updated KIP.
> > > > > > > > > > >
> > > > > > > > > > > JR7. Piggybacking on the version bump in 4.5 sounds good 
> > > > > > > > > > > to me.
> > > > > > > Could
> > > > > > > > > we
> > > > > > > > > > > document the version bump in the KIP?
> > > > > > > > > > >
> > > > > > > > > > > Jun
> > > > > > > > > > >
> > > > > > > > > > > On Thu, Sep 24, 2026 at 7:32 AM Andrew Schofield <
> > > > > > > > > [email protected]>
> > > > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > > > Hi Jun,
> > > > > > > > > > > > Thanks for your reply.
> > > > > > > > > > > >
> > > > > > > > > > > > JR7: There is a tension here between bumping the 
> > > > > > > > > > > > version when
> > > > > > > adding
> > > > > > > > > > these
> > > > > > > > > > > > tagged fields because it is a new feature and not doing 
> > > > > > > > > > > > so
> > > > > > > because of
> > > > > > > > > > the
> > > > > > > > > > > > negotiation aspects of this. I believe that AK 4.5 will
> > > > > > > introduce a
> > > > > > > > > new
> > > > > > > > > > > > version of ApiVersions anyway because of KIP-1313, so 
> > > > > > > > > > > > the best
> > > > > > > path
> > > > > > > > > is
> > > > > > > > > > > > probably to piggyback the tagged field addition onto 
> > > > > > > > > > > > that new
> > > > > > > > > version.
> > > > > > > > > > > >
> > > > > > > > > > > > JR8.1: I've added this constraint in AK 5.0 since we 
> > > > > > > > > > > > need a
> > > > > > major
> > > > > > > > > > version
> > > > > > > > > > > > to enforce this. In practice, nobody will be hit by 
> > > > > > > > > > > > this limit.
> > > > > > > > > > > > JR8.2: Yes, constraint added to the configs too.
> > > > > > > > > > > >
> > > > > > > > > > > > Thanks,
> > > > > > > > > > > > Andrew
> > > > > > > > > > > >
> > > > > > > > > > > > On 2026/09/24 00:08:16 Jun Rao via dev wrote:
> > > > > > > > > > > > > Hi, Andrew,
> > > > > > > > > > > > >
> > > > > > > > > > > > > Thanks for the updated KIP.
> > > > > > > > > > > > >
> > > > > > > > > > > > > JR7. Currently, we always bump the version when 
> > > > > > > > > > > > > adding a
> > > > > > tagged
> > > > > > > > > > field.
> > > > > > > > > > > > The
> > > > > > > > > > > > > intention of this KIP is to add the two tagged fields
> > > > > > without a
> > > > > > > > > > version
> > > > > > > > > > > > > bump. This choice seems reasonable since it avoids an 
> > > > > > > > > > > > > extra
> > > > > > > round
> > > > > > > > > of
> > > > > > > > > > > > > ApiVersionRequest version negotiation when 4.5 
> > > > > > > > > > > > > clients talk
> > > > > > to
> > > > > > > 4.4
> > > > > > > > > > > > servers. It
> > > > > > > > > > > > > would be useful to be explicit document there is not 
> > > > > > > > > > > > > version
> > > > > > > bump
> > > > > > > > > for
> > > > > > > > > > > > > ApiVersionRequest.
> > > > > > > > > > > > >
> > > > > > > > > > > > > JR8. "The maximum length of the fields is 249 
> > > > > > > > > > > > > characters"
> > > > > > > > > > > > > JR8.1 Should the length constraint also apply to the 
> > > > > > > > > > > > > existing
> > > > > > > > > fields
> > > > > > > > > > > > > ClientSoftwareName and ClientSoftwareVersion?
> > > > > > > > > > > > > JR8.2 Should we add a length constraint for the two 
> > > > > > > > > > > > > new
> > > > > > client
> > > > > > > > > > > > > configurations?
> > > > > > > > > > > > >
> > > > > > > > > > > > > Jun
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Wed, Sep 23, 2026 at 6:42 AM Andrew Schofield <
> > > > > > > > > > [email protected]>
> > > > > > > > > > > > > wrote:
> > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Jun,
> > > > > > > > > > > > > > Thanks for the reply.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > JR6: Yes, that works. I've added the methods to
> > > > > > > > > > ClientTelemetryContext.
> > > > > > > > > > > > > > Let me know what you think.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > Andrew
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > On 2026/09/21 17:54:38 Jun Rao via dev wrote:
> > > > > > > > > > > > > > > Hi, Andrew,
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Thanks for the reply.
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > JR6. It seems weird that the implementation of a 
> > > > > > > > > > > > > > > KIP-714
> > > > > > > plugin
> > > > > > > > > > > > requires
> > > > > > > > > > > > > > > casting an authorizableRequestContext to an 
> > > > > > > > > > > > > > > internal
> > > > > > class
> > > > > > > > > > > > > > RequestContext.
> > > > > > > > > > > > > > > Would it be better to expose all client related 
> > > > > > > > > > > > > > > resource
> > > > > > > labels
> > > > > > > > > > > > through a
> > > > > > > > > > > > > > > public API in ClientTelemetryContext?
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > Jun
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Mon, Sep 21, 2026 at 6:43 AM Andrew Schofield <
> > > > > > > > > > > > [email protected]>
> > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Hi Jun,
> > > > > > > > > > > > > > > > Thanks for the reply.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > JR4: Done. Producer, consumer and admin.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > JR5: Yes. I've reworded slightly.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > JR6: I think the plugin implementation already 
> > > > > > > > > > > > > > > > needs to
> > > > > > > do
> > > > > > > > > > > > something
> > > > > > > > > > > > > > > > similar to get to software name/version.
> > > > > > > > > > > > > > > > ClientTelemetryContext.authorizableRequestContext()
> > > > > > > returns
> > > > > > > > > an
> > > > > > > > > > > > > > instance of
> > > > > > > > > > > > > > > > AuthorizableRequestContext. The
> > > > > > > > > > > > o.a.k.common.requests.RequestContext
> > > > > > > > > > > > > > class
> > > > > > > > > > > > > > > > implements that interface, and it also lets you 
> > > > > > > > > > > > > > > > get to
> > > > > > > > > > > > > > ClientInformation
> > > > > > > > > > > > > > > > and that's where you can find the software 
> > > > > > > > > > > > > > > > name/version
> > > > > > > and
> > > > > > > > > > > > framework
> > > > > > > > > > > > > > > > name/version. You can see this in
> > > > > > > > > > > > > > > > o.a.k.server.metrics.ClientMetricsInstanceMetadata.
> > > > > > > > > > > > > > > >  I
> > > > > > > would
> > > > > > > > > > > > describe
> > > > > > > > > > > > > > this
> > > > > > > > > > > > > > > > as grubby :)
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > One way forward here would be to remove the
> > > > > > broker-added
> > > > > > > > > > resource
> > > > > > > > > > > > > > labels
> > > > > > > > > > > > > > > > from KIP-1368, but leave the additions to the 
> > > > > > > > > > > > > > > > match
> > > > > > > criteria.
> > > > > > > > > > Then
> > > > > > > > > > > > it
> > > > > > > > > > > > > > would
> > > > > > > > > > > > > > > > still be possible to specify, for example, that
> > > > > > > particular
> > > > > > > > > > metrics
> > > > > > > > > > > > > > should
> > > > > > > > > > > > > > > > be captured for Kafka Streams clients only, 
> > > > > > > > > > > > > > > > without
> > > > > > > adding to
> > > > > > > > > > the
> > > > > > > > > > > > > > > > grubbiness.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > > > Andrew
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > On 2026/09/15 20:44:06 Jun Rao via dev wrote:
> > > > > > > > > > > > > > > > > Hi, Andrew,
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Thanks for the reply. A few more comments.
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > JR4. "The configuration keys are defined in
> > > > > > > > > > > > > > > > > org.apache.kafka.clients.CommonClientConfigs"
> > > > > > > > > > > > > > > > > Could you explicitly list the clients 
> > > > > > > > > > > > > > > > > (producer,
> > > > > > > consumer,
> > > > > > > > > > > > > > AdminClient,
> > > > > > > > > > > > > > > > > etc.) that define the two new configs?
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > JR5. Should AK frameworks such as kstream and 
> > > > > > > > > > > > > > > > > connect
> > > > > > > set
> > > > > > > > > > > > > > > > > client.framework.name and 
> > > > > > > > > > > > > > > > > client.framework.version
> > > > > > in
> > > > > > > > > their
> > > > > > > > > > > > clients
> > > > > > > > > > > > > > > > > automatically?
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > JR6. "Broker-added resources labels for client
> > > > > > metrics"
> > > > > > > > > > > > > > > > > Are the new labels added in
> > > > > > > > > > > > > > DefaultClientTelemetryContext.RequestContext?
> > > > > > > > > > > > > > > > > Since ClientTelemetryExporter.exportMetrics() 
> > > > > > > > > > > > > > > > > only
> > > > > > > takes
> > > > > > > > > > > > > > > > > ClientTelemetryContext, does the implementor 
> > > > > > > > > > > > > > > > > need to
> > > > > > > cast
> > > > > > > > > it
> > > > > > > > > > > > > > > > > to DefaultClientTelemetryContext to retrieve 
> > > > > > > > > > > > > > > > > the new
> > > > > > > > > labels?
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Jun
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Fri, Sep 11, 2026 at 12:48 PM Andrew 
> > > > > > > > > > > > > > > > > Schofield <
> > > > > > > > > > > > > > [email protected]
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Hi Jun,
> > > > > > > > > > > > > > > > > > JR1: I dug into the KIP-714 client metrics 
> > > > > > > > > > > > > > > > > > stuff a
> > > > > > > bit
> > > > > > > > > more
> > > > > > > > > > > > and I
> > > > > > > > > > > > > > have
> > > > > > > > > > > > > > > > > > revised the KIP. I have added 
> > > > > > > > > > > > > > > > > > client-framework-name
> > > > > > > and
> > > > > > > > > > > > > > > > > > client-framework-version to the set of keys 
> > > > > > > > > > > > > > > > > > in the
> > > > > > > > > > matching for
> > > > > > > > > > > > > > client
> > > > > > > > > > > > > > > > > > metrics, and also added these broker-added 
> > > > > > > > > > > > > > > > > > metrics
> > > > > > > tags.
> > > > > > > > > > This
> > > > > > > > > > > > is
> > > > > > > > > > > > > > how
> > > > > > > > > > > > > > > > these
> > > > > > > > > > > > > > > > > > pieces of information would have been 
> > > > > > > > > > > > > > > > > > incorporated
> > > > > > > into
> > > > > > > > > > > > KIP_714 had
> > > > > > > > > > > > > > > > they
> > > > > > > > > > > > > > > > > > been part of Kafka at that point.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > > > > > Andrew
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > On 2026/08/04 20:29:19 Andrew Schofield 
> > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > Hi Jun,
> > > > > > > > > > > > > > > > > > > Thanks for the response.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > JR1: My intent here is only request 
> > > > > > > > > > > > > > > > > > > logging. It
> > > > > > > would
> > > > > > > > > be
> > > > > > > > > > > > > > possible to
> > > > > > > > > > > > > > > > add
> > > > > > > > > > > > > > > > > > client-framework-name and 
> > > > > > > > > > > > > > > > > > client-framework-version
> > > > > > > to the
> > > > > > > > > > match
> > > > > > > > > > > > > > > > criteria
> > > > > > > > > > > > > > > > > > for client metrics, which could conceivably 
> > > > > > > > > > > > > > > > > > permit
> > > > > > > > > > scenarios
> > > > > > > > > > > > such
> > > > > > > > > > > > > > as
> > > > > > > > > > > > > > > > > > capturing metrics from specific versions of 
> > > > > > > > > > > > > > > > > > the
> > > > > > > Spring
> > > > > > > > > > > > framework.
> > > > > > > > > > > > > > This
> > > > > > > > > > > > > > > > is
> > > > > > > > > > > > > > > > > > beyond the scope I have in mind.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > JR3: Thanks for clarifying the tagged 
> > > > > > > > > > > > > > > > > > > field
> > > > > > > > > conventions.
> > > > > > > > > > > > Version
> > > > > > > > > > > > > > bump
> > > > > > > > > > > > > > > > > > reverted.
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > > > > > > Andrew
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > On 2026/08/04 18:38:40 Jun Rao via dev 
> > > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > Hi, Andrew,
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Thanks for the reply.
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > JR1. ClientSoftwareName and
> > > > > > > ClientSoftwareVersion are
> > > > > > > > > > used
> > > > > > > > > > > > in
> > > > > > > > > > > > > > > > metric
> > > > > > > > > > > > > > > > > > names
> > > > > > > > > > > > > > > > > > > > and match predicates for configuring 
> > > > > > > > > > > > > > > > > > > > client
> > > > > > > metrics.
> > > > > > > > > > Are
> > > > > > > > > > > > > > > > > > ClientFrameworkName
> > > > > > > > > > > > > > > > > > > > and ClientFrameworkVersion used in 
> > > > > > > > > > > > > > > > > > > > those places
> > > > > > > too
> > > > > > > > > or
> > > > > > > > > > are
> > > > > > > > > > > > they
> > > > > > > > > > > > > > > > only
> > > > > > > > > > > > > > > > > > used
> > > > > > > > > > > > > > > > > > > > in request logging?
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > JR3. The general rule for adding a new 
> > > > > > > > > > > > > > > > > > > > field in
> > > > > > > RPC
> > > > > > > > > is
> > > > > > > > > > that
> > > > > > > > > > > > > > (1) if
> > > > > > > > > > > > > > > > it's
> > > > > > > > > > > > > > > > > > > > truly optional, we add it as a tagged 
> > > > > > > > > > > > > > > > > > > > field
> > > > > > with
> > > > > > > no
> > > > > > > > > > version
> > > > > > > > > > > > > > bump;
> > > > > > > > > > > > > > > > (2)
> > > > > > > > > > > > > > > > > > > > otherwise, we add it as a non-tagged 
> > > > > > > > > > > > > > > > > > > > field
> > > > > > with a
> > > > > > > > > > version
> > > > > > > > > > > > > > bump. One
> > > > > > > > > > > > > > > > > > > > exception is when adding a non-optional 
> > > > > > > > > > > > > > > > > > > > field
> > > > > > in
> > > > > > > the
> > > > > > > > > > > > request
> > > > > > > > > > > > > > > > header.
> > > > > > > > > > > > > > > > > > > > Because of the limitation in existing
> > > > > > > implementation,
> > > > > > > > > > we
> > > > > > > > > > > > need
> > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > add
> > > > > > > > > > > > > > > > > > it as
> > > > > > > > > > > > > > > > > > > > a tagged field with a version bump.
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > Jun
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > On Tue, Aug 4, 2026 at 6:04 AM Andrew
> > > > > > Schofield <
> > > > > > > > > > > > > > > > [email protected]
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > Hi Jun,
> > > > > > > > > > > > > > > > > > > > > Thanks for your response.
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > JR1: I've expanded the motivation 
> > > > > > > > > > > > > > > > > > > > > section in
> > > > > > > the
> > > > > > > > > KIP.
> > > > > > > > > > > > They
> > > > > > > > > > > > > > are
> > > > > > > > > > > > > > > > truly
> > > > > > > > > > > > > > > > > > > > > optional, I feel. When diagnosing an 
> > > > > > > > > > > > > > > > > > > > > issue
> > > > > > > using
> > > > > > > > > the
> > > > > > > > > > > > client
> > > > > > > > > > > > > > logs,
> > > > > > > > > > > > > > > > > > having
> > > > > > > > > > > > > > > > > > > > > this information can illuminate why 
> > > > > > > > > > > > > > > > > > > > > the
> > > > > > > application
> > > > > > > > > > is
> > > > > > > > > > > > > > behaving
> > > > > > > > > > > > > > > > in a
> > > > > > > > > > > > > > > > > > > > > particular way. If the application is 
> > > > > > > > > > > > > > > > > > > > > using a
> > > > > > > > > > framework,
> > > > > > > > > > > > > > > > behaviours
> > > > > > > > > > > > > > > > > > such as
> > > > > > > > > > > > > > > > > > > > > retries will typically not be in the
> > > > > > > application
> > > > > > > > > code
> > > > > > > > > > > > itself
> > > > > > > > > > > > > > > > because
> > > > > > > > > > > > > > > > > > > > > they're implemented in the framework.
> > > > > > There's a
> > > > > > > > > > > > difference
> > > > > > > > > > > > > > > > between
> > > > > > > > > > > > > > > > > > what the
> > > > > > > > > > > > > > > > > > > > > application developer thinks their 
> > > > > > > > > > > > > > > > > > > > > code does
> > > > > > > and
> > > > > > > > > > what we
> > > > > > > > > > > > see
> > > > > > > > > > > > > > in
> > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > logs.
> > > > > > > > > > > > > > > > > > > > > That's the point.
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > JR2: Done. They're Type.STRING, 
> > > > > > > > > > > > > > > > > > > > > default
> > > > > > null. I
> > > > > > > > > think
> > > > > > > > > > > > they
> > > > > > > > > > > > > > > > should be
> > > > > > > > > > > > > > > > > > > > > importance LOW because that affects 
> > > > > > > > > > > > > > > > > > > > > the
> > > > > > > prominence
> > > > > > > > > > of the
> > > > > > > > > > > > > > > > configs in
> > > > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > > > > documentation, but I wonder whether 
> > > > > > > > > > > > > > > > > > > > > you
> > > > > > agree.
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > > > > > > > > Andrew
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > On 2026/08/03 21:39:06 Jun Rao via 
> > > > > > > > > > > > > > > > > > > > > dev wrote:
> > > > > > > > > > > > > > > > > > > > > > Hi, Andrew,
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > Thanks for the KIP.
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > JR1. Could you describe the use 
> > > > > > > > > > > > > > > > > > > > > > cases of
> > > > > > the
> > > > > > > two
> > > > > > > > > > new
> > > > > > > > > > > > > > configs
> > > > > > > > > > > > > > > > and
> > > > > > > > > > > > > > > > > > are they
> > > > > > > > > > > > > > > > > > > > > > truly optional?
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > JR2. Could you add the type and the 
> > > > > > > > > > > > > > > > > > > > > > default
> > > > > > > value
> > > > > > > > > > for
> > > > > > > > > > > > the
> > > > > > > > > > > > > > new
> > > > > > > > > > > > > > > > > > configs?
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > Jun
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > On Fri, Jul 31, 2026 at 10:23 AM 
> > > > > > > > > > > > > > > > > > > > > > Matthias
> > > > > > J.
> > > > > > > Sax
> > > > > > > > > <
> > > > > > > > > > > > > > > > [email protected]
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > Thanks for the KIP Andrew. I 
> > > > > > > > > > > > > > > > > > > > > > > think it
> > > > > > will
> > > > > > > be
> > > > > > > > > > very
> > > > > > > > > > > > > > useful if
> > > > > > > > > > > > > > > > we
> > > > > > > > > > > > > > > > > > can
> > > > > > > > > > > > > > > > > > > > > > > identify frameworks, especially 
> > > > > > > > > > > > > > > > > > > > > > > our own
> > > > > > > ones
> > > > > > > > > > > > (Connect and
> > > > > > > > > > > > > > > > > > Streams).
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > About Aditya's point: I am 
> > > > > > > > > > > > > > > > > > > > > > > wondering
> > > > > > where
> > > > > > > to
> > > > > > > > > > draw
> > > > > > > > > > > > the
> > > > > > > > > > > > > > line.
> > > > > > > > > > > > > > > > Many
> > > > > > > > > > > > > > > > > > > > > > > examples seems to be metadata that
> > > > > > belongs
> > > > > > > into
> > > > > > > > > > he
> > > > > > > > > > > > Kafka
> > > > > > > > > > > > > > > > record
> > > > > > > > > > > > > > > > > > > > > > > `Headers` at the application 
> > > > > > > > > > > > > > > > > > > > > > > level,
> > > > > > rather
> > > > > > > than
> > > > > > > > > > the
> > > > > > > > > > > > lower
> > > > > > > > > > > > > > > > level
> > > > > > > > > > > > > > > > > > request
> > > > > > > > > > > > > > > > > > > > > > > headers?
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > There if of course no strict 
> > > > > > > > > > > > > > > > > > > > > > > logical
> > > > > > > dividing
> > > > > > > > > > line
> > > > > > > > > > > > > > between
> > > > > > > > > > > > > > > > both.
> > > > > > > > > > > > > > > > > > And
> > > > > > > > > > > > > > > > > > > > > > > yes, the broker does not access
> > > > > > application
> > > > > > > > > level
> > > > > > > > > > > > Kafka
> > > > > > > > > > > > > > > > record
> > > > > > > > > > > > > > > > > > > > > > > `Headers`. But if it would be 
> > > > > > > > > > > > > > > > > > > > > > > useful to
> > > > > > > let the
> > > > > > > > > > > > broker
> > > > > > > > > > > > > > tap
> > > > > > > > > > > > > > > > into
> > > > > > > > > > > > > > > > > > > > > > > application level record 
> > > > > > > > > > > > > > > > > > > > > > > `Headers` we
> > > > > > > should
> > > > > > > > > > tackle
> > > > > > > > > > > > it
> > > > > > > > > > > > > > > > > > independently?
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > Personally, I don't think it 
> > > > > > > > > > > > > > > > > > > > > > > would be the
> > > > > > > right
> > > > > > > > > > > > design to
> > > > > > > > > > > > > > > > push
> > > > > > > > > > > > > > > > > > too many
> > > > > > > > > > > > > > > > > > > > > > > thing into the lower level request
> > > > > > > headers. So
> > > > > > > > > I
> > > > > > > > > > am
> > > > > > > > > > > > in
> > > > > > > > > > > > > > favor
> > > > > > > > > > > > > > > > of
> > > > > > > > > > > > > > > > > > only
> > > > > > > > > > > > > > > > > > > > > > > added the two new propose
> > > > > > > `ClientFrameworkName`
> > > > > > > > > > and
> > > > > > > > > > > > > > > > > > > > > > > `ClientFrameworkVersion` fields.
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > -Matthias
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > On 7/31/26 7:56 AM, Federico 
> > > > > > > > > > > > > > > > > > > > > > > Valeri
> > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > > > Changes look good. Thanks.
> > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > On Fri, Jul 31, 2026 at 11:17 
> > > > > > > > > > > > > > > > > > > > > > > > AM Andrew
> > > > > > > > > > Schofield <
> > > > > > > > > > > > > > > > > > > > > [email protected]>
> > > > > > > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > > >>
> > > > > > > > > > > > > > > > > > > > > > > >> Hi Fede,
> > > > > > > > > > > > > > > > > > > > > > > >> Thanks for your response.
> > > > > > > > > > > > > > > > > > > > > > > >>
> > > > > > > > > > > > > > > > > > > > > > > >> FV1: They are set using the 
> > > > > > > > > > > > > > > > > > > > > > > >> regular
> > > > > > > config
> > > > > > > > > > > > properties.
> > > > > > > > > > > > > > > > Yes,
> > > > > > > > > > > > > > > > > > it is
> > > > > > > > > > > > > > > > > > > > > > > possible for an end user to set 
> > > > > > > > > > > > > > > > > > > > > > > arbitrary
> > > > > > > > > > values, but
> > > > > > > > > > > > > > then
> > > > > > > > > > > > > > > > that
> > > > > > > > > > > > > > > > > > would
> > > > > > > > > > > > > > > > > > > > > also
> > > > > > > > > > > > > > > > > > > > > > > be true of a builder or internal
> > > > > > > constructor.
> > > > > > > > > > I've
> > > > > > > > > > > > added
> > > > > > > > > > > > > > a
> > > > > > > > > > > > > > > > bit
> > > > > > > > > > > > > > > > > > more
> > > > > > > > > > > > > > > > > > > > > > > information in the KIP and beefed 
> > > > > > > > > > > > > > > > > > > > > > > up the
> > > > > > > config
> > > > > > > > > > > > > > descriptions
> > > > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > > > > > > discourage
> > > > > > > > > > > > > > > > > > > > > > > application use.
> > > > > > > > > > > > > > > > > > > > > > > >>
> > > > > > > > > > > > > > > > > > > > > > > >> FV2: I've never encountered 
> > > > > > > > > > > > > > > > > > > > > > > >> such
> > > > > > > nightmares
> > > > > > > > > > > > myself.
> > > > > > > > > > > > > > The
> > > > > > > > > > > > > > > > > > framework
> > > > > > > > > > > > > > > > > > > > > which
> > > > > > > > > > > > > > > > > > > > > > > sets the config last would win. 
> > > > > > > > > > > > > > > > > > > > > > > Maybe
> > > > > > this
> > > > > > > is a
> > > > > > > > > > > > > > motivation
> > > > > > > > > > > > > > > > for
> > > > > > > > > > > > > > > > > > having a
> > > > > > > > > > > > > > > > > > > > > > > programmatic way of setting the
> > > > > > > information. We
> > > > > > > > > > could
> > > > > > > > > > > > > > support
> > > > > > > > > > > > > > > > > > > > > concatenation
> > > > > > > > > > > > > > > > > > > > > > > of framework information, but 
> > > > > > > > > > > > > > > > > > > > > > > that's just
> > > > > > > > > > pandering
> > > > > > > > > > > > to
> > > > > > > > > > > > > > these
> > > > > > > > > > > > > > > > > > people.
> > > > > > > > > > > > > > > > > > > > > Let me
> > > > > > > > > > > > > > > > > > > > > > > know what you think.
> > > > > > > > > > > > > > > > > > > > > > > >>
> > > > > > > > > > > > > > > > > > > > > > > >> I've also updated the KIP with 
> > > > > > > > > > > > > > > > > > > > > > > >> a
> > > > > > maximum
> > > > > > > > > > length
> > > > > > > > > > > > for
> > > > > > > > > > > > > > these
> > > > > > > > > > > > > > > > > > pieces of
> > > > > > > > > > > > > > > > > > > > > > > information since all identifiers 
> > > > > > > > > > > > > > > > > > > > > > > should
> > > > > > > have
> > > > > > > > > > defined
> > > > > > > > > > > > > > bounds.
> > > > > > > > > > > > > > > > > > > > > > > >>
> > > > > > > > > > > > > > > > > > > > > > > >> Thanks,
> > > > > > > > > > > > > > > > > > > > > > > >> Andrew
> > > > > > > > > > > > > > > > > > > > > > > >>
> > > > > > > > > > > > > > > > > > > > > > > >> On 2026/07/31 08:50:11 
> > > > > > > > > > > > > > > > > > > > > > > >> Federico Valeri
> > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > > >>> Hi Andrew, the motivation 
> > > > > > > > > > > > > > > > > > > > > > > >>> looks
> > > > > > good. A
> > > > > > > > > > couple of
> > > > > > > > > > > > > > > > questions:
> > > > > > > > > > > > > > > > > > > > > > > >>>
> > > > > > > > > > > > > > > > > > > > > > > >>> FV1: The KIP says frameworks 
> > > > > > > > > > > > > > > > > > > > > > > >>> should
> > > > > > set
> > > > > > > > > them,
> > > > > > > > > > > > but it
> > > > > > > > > > > > > > > > does not
> > > > > > > > > > > > > > > > > > > > > specify
> > > > > > > > > > > > > > > > > > > > > > > >>> the mechanism. If these are 
> > > > > > > > > > > > > > > > > > > > > > > >>> ordinary
> > > > > > > > > > user-facing
> > > > > > > > > > > > > > configs,
> > > > > > > > > > > > > > > > > > nothing
> > > > > > > > > > > > > > > > > > > > > > > >>> prevents an end user from 
> > > > > > > > > > > > > > > > > > > > > > > >>> setting
> > > > > > > arbitrary
> > > > > > > > > > > > values,
> > > > > > > > > > > > > > which
> > > > > > > > > > > > > > > > > > defeats
> > > > > > > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > > > > > > >>> purpose. Should the framework 
> > > > > > > > > > > > > > > > > > > > > > > >>> set
> > > > > > them
> > > > > > > > > > > > > > programmatically
> > > > > > > > > > > > > > > > > > (builder or
> > > > > > > > > > > > > > > > > > > > > > > >>>    internal constructor) or 
> > > > > > > > > > > > > > > > > > > > > > > >>> is user
> > > > > > > > > override
> > > > > > > > > > > > > > intentional?
> > > > > > > > > > > > > > > > > > > > > > > >>>
> > > > > > > > > > > > > > > > > > > > > > > >>> FV2: What if we have multiple 
> > > > > > > > > > > > > > > > > > > > > > > >>> layers
> > > > > > of
> > > > > > > > > > > > frameworks?
> > > > > > > > > > > > > > Let's
> > > > > > > > > > > > > > > > > > say a
> > > > > > > > > > > > > > > > > > > > > custom
> > > > > > > > > > > > > > > > > > > > > > > >>> framework on top of 
> > > > > > > > > > > > > > > > > > > > > > > >>> SpringBoot. I've
> > > > > > > seen
> > > > > > > > > > similar
> > > > > > > > > > > > > > > > nightmares
> > > > > > > > > > > > > > > > > > in the
> > > > > > > > > > > > > > > > > > > > > > > >>> past.
> > > > > > > > > > > > > > > > > > > > > > > >>>
> > > > > > > > > > > > > > > > > > > > > > > >>> Thanks
> > > > > > > > > > > > > > > > > > > > > > > >>> Fede
> > > > > > > > > > > > > > > > > > > > > > > >>>
> > > > > > > > > > > > > > > > > > > > > > > >>> On Tue, Jul 28, 2026 at 8:27 
> > > > > > > > > > > > > > > > > > > > > > > >>> AM
> > > > > > Aditya
> > > > > > > > > > Kousik <
> > > > > > > > > > > > > > > > > > > > > [email protected]>
> > > > > > > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> Hi Andrew,
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> We’re definitely agreed on 
> > > > > > > > > > > > > > > > > > > > > > > >>>> the
> > > > > > > increased
> > > > > > > > > > use of
> > > > > > > > > > > > > > > > frameworks
> > > > > > > > > > > > > > > > > > over
> > > > > > > > > > > > > > > > > > > > > than
> > > > > > > > > > > > > > > > > > > > > > > the client directly. I’ve cited 
> > > > > > > > > > > > > > > > > > > > > > > the
> > > > > > > different
> > > > > > > > > > > > patterns
> > > > > > > > > > > > > > > > Spring,
> > > > > > > > > > > > > > > > > > > > > Micronaut,
> > > > > > > > > > > > > > > > > > > > > > > smallrye and company-internal 
> > > > > > > > > > > > > > > > > > > > > > > frameworks
> > > > > > > have
> > > > > > > > > > APIs
> > > > > > > > > > > > built
> > > > > > > > > > > > > > on
> > > > > > > > > > > > > > > > top
> > > > > > > > > > > > > > > > > > of the
> > > > > > > > > > > > > > > > > > > > > > > Kafka client, in a couple of KIPs
> > > > > > already.
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> The project has enough 
> > > > > > > > > > > > > > > > > > > > > > > >>>> traction
> > > > > > that I
> > > > > > > > > > think of
> > > > > > > > > > > > it
> > > > > > > > > > > > > > as
> > > > > > > > > > > > > > > > its
> > > > > > > > > > > > > > > > > > own
> > > > > > > > > > > > > > > > > > > > > network
> > > > > > > > > > > > > > > > > > > > > > > client with distributed log 
> > > > > > > > > > > > > > > > > > > > > > > semantics for
> > > > > > > which
> > > > > > > > > > > > > > frameworks
> > > > > > > > > > > > > > > > are
> > > > > > > > > > > > > > > > > > written,
> > > > > > > > > > > > > > > > > > > > > > > much like gRPC over netty. People 
> > > > > > > > > > > > > > > > > > > > > > > want to
> > > > > > > just
> > > > > > > > > > write
> > > > > > > > > > > > the
> > > > > > > > > > > > > > > > business
> > > > > > > > > > > > > > > > > > > > > logic and
> > > > > > > > > > > > > > > > > > > > > > > leave the plumbing and threading 
> > > > > > > > > > > > > > > > > > > > > > > to the
> > > > > > > > > > frameworks.
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> All of this to say, I’m fine 
> > > > > > > > > > > > > > > > > > > > > > > >>>> to ship
> > > > > > > the
> > > > > > > > > > client
> > > > > > > > > > > > > > > > framework
> > > > > > > > > > > > > > > > > > as the
> > > > > > > > > > > > > > > > > > > > > new
> > > > > > > > > > > > > > > > > > > > > > > identifying parameter for 
> > > > > > > > > > > > > > > > > > > > > > > frameworks to
> > > > > > > set. It
> > > > > > > > > > will
> > > > > > > > > > > > be
> > > > > > > > > > > > > > > > mighty
> > > > > > > > > > > > > > > > > > useful.
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> My addendum, rather than a 
> > > > > > > > > > > > > > > > > > > > > > > >>>> pushback
> > > > > > is
> > > > > > > > > that:
> > > > > > > > > > > > guilty
> > > > > > > > > > > > > > as
> > > > > > > > > > > > > > > > > > charged,
> > > > > > > > > > > > > > > > > > > > > I’m
> > > > > > > > > > > > > > > > > > > > > > > driven by the otel/DD
> > > > > > > telemetry/observability
> > > > > > > > > of
> > > > > > > > > > > > using
> > > > > > > > > > > > > > Apache
> > > > > > > > > > > > > > > > > > Kafka in
> > > > > > > > > > > > > > > > > > > > > > > applications. The
> > > > > > client.framework.version
> > > > > > > > > > config for
> > > > > > > > > > > > > > > > instance
> > > > > > > > > > > > > > > > > > can be
> > > > > > > > > > > > > > > > > > > > > used
> > > > > > > > > > > > > > > > > > > > > > > to detect regressions and isolate 
> > > > > > > > > > > > > > > > > > > > > > > root
> > > > > > > causes.
> > > > > > > > > > But I
> > > > > > > > > > > > > > feel it
> > > > > > > > > > > > > > > > is
> > > > > > > > > > > > > > > > > > only
> > > > > > > > > > > > > > > > > > > > > one of
> > > > > > > > > > > > > > > > > > > > > > > many such facets. You mentioned 
> > > > > > > > > > > > > > > > > > > > > > > that you
> > > > > > > would
> > > > > > > > > > use
> > > > > > > > > > > > > > client.id
> > > > > > > > > > > > > > > > and
> > > > > > > > > > > > > > > > > > > > > > > clientInstanceId to identify a 
> > > > > > > > > > > > > > > > > > > > > > > client but
> > > > > > > that
> > > > > > > > > > these
> > > > > > > > > > > > do
> > > > > > > > > > > > > > not
> > > > > > > > > > > > > > > > help
> > > > > > > > > > > > > > > > > > with
> > > > > > > > > > > > > > > > > > > > > > > aggregate/fleet-wide issues. As an
> > > > > > > example, if
> > > > > > > > > I
> > > > > > > > > > tag
> > > > > > > > > > > > an
> > > > > > > > > > > > > > > > app’s AZ
> > > > > > > > > > > > > > > > > > it can
> > > > > > > > > > > > > > > > > > > > > > > help me write alerts on spike in 
> > > > > > > > > > > > > > > > > > > > > > > latency
> > > > > > in
> > > > > > > > > > > > us-west-2.
> > > > > > > > > > > > > > Or,
> > > > > > > > > > > > > > > > > > detect stuck
> > > > > > > > > > > > > > > > > > > > > > > partitions across multiple
> > > > > > > > > > > > client.id/application.names
> > > > > > > > > > > > > > none
> > > > > > > > > > > > > > > > of
> > > > > > > > > > > > > > > > > > whom
> > > > > > > > > > > > > > > > > > > > > share
> > > > > > > > > > > > > > > > > > > > > > > the same client.framework.name.
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> Other tags that come to mind:
> > > > > > > > > > application.name,
> > > > > > > > > > > > az,
> > > > > > > > > > > > > > > > team,
> > > > > > > > > > > > > > > > > > env,
> > > > > > > > > > > > > > > > > > > > > rack.
> > > > > > > > > > > > > > > > > > > > > > > All fields users usually hijack
> > > > > > client.id
> > > > > > > for.
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> An otel JavaAgent can 
> > > > > > > > > > > > > > > > > > > > > > > >>>> capture the
> > > > > > > client
> > > > > > > > > > > > metadata
> > > > > > > > > > > > > > > > > > registered and
> > > > > > > > > > > > > > > > > > > > > > > attach it as tags with each 
> > > > > > > > > > > > > > > > > > > > > > > resource
> > > > > > span.
> > > > > > > > > Users
> > > > > > > > > > who
> > > > > > > > > > > > use
> > > > > > > > > > > > > > > > > > frameworks but
> > > > > > > > > > > > > > > > > > > > > > > rely on datadog/otel will get 
> > > > > > > > > > > > > > > > > > > > > > > visibility
> > > > > > > into
> > > > > > > > > the
> > > > > > > > > > > > client
> > > > > > > > > > > > > > > > > > metadata for
> > > > > > > > > > > > > > > > > > > > > free.
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> The KIP as I read it, serves 
> > > > > > > > > > > > > > > > > > > > > > > >>>> as a
> > > > > > > > > > foundation for
> > > > > > > > > > > > > > future
> > > > > > > > > > > > > > > > > > use. So I
> > > > > > > > > > > > > > > > > > > > > > > don’t want to shoehorn a new 
> > > > > > > > > > > > > > > > > > > > > > > behaviour if
> > > > > > > it
> > > > > > > > > > > > explodes the
> > > > > > > > > > > > > > > > scope
> > > > > > > > > > > > > > > > > > too
> > > > > > > > > > > > > > > > > > > > > much.
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>> Best regards,
> > > > > > > > > > > > > > > > > > > > > > > >>>> Aditya
> > > > > > > > > > > > > > > > > > > > > > > >>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> On Jul 27, 2026, at 13:52, 
> > > > > > > > > > > > > > > > > > > > > > > >>>>> Andrew
> > > > > > > > > > Schofield <
> > > > > > > > > > > > > > > > > > > > > [email protected]>
> > > > > > > > > > > > > > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> Hi Aditya,
> > > > > > > > > > > > > > > > > > > > > > > >>>>> Thanks for your response.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> AK1: I chose framework as 
> > > > > > > > > > > > > > > > > > > > > > > >>>>> the
> > > > > > blessed
> > > > > > > > > > > > abstraction
> > > > > > > > > > > > > > > > because
> > > > > > > > > > > > > > > > > > my
> > > > > > > > > > > > > > > > > > > > > focus
> > > > > > > > > > > > > > > > > > > > > > > was problem determination for 
> > > > > > > > > > > > > > > > > > > > > > > client
> > > > > > > > > > applications. We
> > > > > > > > > > > > > > often
> > > > > > > > > > > > > > > > find
> > > > > > > > > > > > > > > > > > that
> > > > > > > > > > > > > > > > > > > > > users
> > > > > > > > > > > > > > > > > > > > > > > with client problems have not 
> > > > > > > > > > > > > > > > > > > > > > > coded
> > > > > > > directly to
> > > > > > > > > > the
> > > > > > > > > > > > Kafka
> > > > > > > > > > > > > > > > client
> > > > > > > > > > > > > > > > > > > > > interface
> > > > > > > > > > > > > > > > > > > > > > > because they are using a 
> > > > > > > > > > > > > > > > > > > > > > > framework. As a
> > > > > > > > > result,
> > > > > > > > > > > > their
> > > > > > > > > > > > > > > > knowledge
> > > > > > > > > > > > > > > > > > of the
> > > > > > > > > > > > > > > > > > > > > > > application code is one level 
> > > > > > > > > > > > > > > > > > > > > > > removed
> > > > > > from
> > > > > > > the
> > > > > > > > > > Kafka
> > > > > > > > > > > > > > client.
> > > > > > > > > > > > > > > > > > > > > Frameworks can
> > > > > > > > > > > > > > > > > > > > > > > override configuration defaults,
> > > > > > introduce
> > > > > > > > > > different
> > > > > > > > > > > > > > retry
> > > > > > > > > > > > > > > > > > behaviour
> > > > > > > > > > > > > > > > > > > > > and so
> > > > > > > > > > > > > > > > > > > > > > > on. Lots of companies have their 
> > > > > > > > > > > > > > > > > > > > > > > own
> > > > > > > internal
> > > > > > > > > > > > > > frameworks, so
> > > > > > > > > > > > > > > > > > this KIP
> > > > > > > > > > > > > > > > > > > > > can
> > > > > > > > > > > > > > > > > > > > > > > be used by them too. I'm trying 
> > > > > > > > > > > > > > > > > > > > > > > to make
> > > > > > it
> > > > > > > > > > easier to
> > > > > > > > > > > > > > work out
> > > > > > > > > > > > > > > > > > when a
> > > > > > > > > > > > > > > > > > > > > user
> > > > > > > > > > > > > > > > > > > > > > > is making use of a framework and 
> > > > > > > > > > > > > > > > > > > > > > > knowing
> > > > > > > what
> > > > > > > > > it
> > > > > > > > > > is.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> Sometimes, particularly for
> > > > > > non-Java
> > > > > > > > > > clients,
> > > > > > > > > > > > > > people
> > > > > > > > > > > > > > > > have
> > > > > > > > > > > > > > > > > > > > > overridden
> > > > > > > > > > > > > > > > > > > > > > > the ClientSoftwareName/Version
> > > > > > themselves,
> > > > > > > > > which
> > > > > > > > > > > > makes
> > > > > > > > > > > > > > those
> > > > > > > > > > > > > > > > > > concepts
> > > > > > > > > > > > > > > > > > > > > much
> > > > > > > > > > > > > > > > > > > > > > > less useful than they should be. 
> > > > > > > > > > > > > > > > > > > > > > > By
> > > > > > > providing
> > > > > > > > > > > > > > > > > > > > > ClientFrameworkName/Version,
> > > > > > > > > > > > > > > > > > > > > > > there is no longer any need to do 
> > > > > > > > > > > > > > > > > > > > > > > so.
> > > > > > > That's
> > > > > > > > > > another
> > > > > > > > > > > > > > > > motivation
> > > > > > > > > > > > > > > > > > here,
> > > > > > > > > > > > > > > > > > > > > even
> > > > > > > > > > > > > > > > > > > > > > > though KIPs don't concern 
> > > > > > > > > > > > > > > > > > > > > > > themselves with
> > > > > > > > > > non-Java
> > > > > > > > > > > > > > clients as
> > > > > > > > > > > > > > > > > > such.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> We could go for a more 
> > > > > > > > > > > > > > > > > > > > > > > >>>>> flexible
> > > > > > > key-value
> > > > > > > > > > > > approach,
> > > > > > > > > > > > > > > > but a
> > > > > > > > > > > > > > > > > > simple
> > > > > > > > > > > > > > > > > > > > > > > name and version is sufficient 
> > > > > > > > > > > > > > > > > > > > > > > for what I
> > > > > > > had
> > > > > > > > > in
> > > > > > > > > > > > mind.
> > > > > > > > > > > > > > Feel
> > > > > > > > > > > > > > > > free
> > > > > > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > > > > > > push
> > > > > > > > > > > > > > > > > > > > > > > back with additional 
> > > > > > > > > > > > > > > > > > > > > > > justification and
> > > > > > > > > examples.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> AK2: Done.
> > > > > > > > > > o.a.k.clients.CommonClientConfigs.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> AK3: To identify a 
> > > > > > > > > > > > > > > > > > > > > > > >>>>> particular
> > > > > > > client, I
> > > > > > > > > > would
> > > > > > > > > > > > use
> > > > > > > > > > > > > > > > client
> > > > > > > > > > > > > > > > > > ID and
> > > > > > > > > > > > > > > > > > > > > > > client-instance ID. I think these 
> > > > > > > > > > > > > > > > > > > > > > > are
> > > > > > > generally
> > > > > > > > > > more
> > > > > > > > > > > > > > useful
> > > > > > > > > > > > > > > > > > concepts
> > > > > > > > > > > > > > > > > > > > > than
> > > > > > > > > > > > > > > > > > > > > > > the framework name and version 
> > > > > > > > > > > > > > > > > > > > > > > which are
> > > > > > > extra
> > > > > > > > > > > > > > information
> > > > > > > > > > > > > > > > for
> > > > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > > > > person
> > > > > > > > > > > > > > > > > > > > > > > trying to figure out why a client 
> > > > > > > > > > > > > > > > > > > > > > > is not
> > > > > > > > > > behaving as
> > > > > > > > > > > > > > > > expected.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> AK4: I'm sure you have more
> > > > > > > experience of
> > > > > > > > > > > > > > OTel/DataDog
> > > > > > > > > > > > > > > > > > > > > collectors.
> > > > > > > > > > > > > > > > > > > > > > > You may well be correct that they 
> > > > > > > > > > > > > > > > > > > > > > > would
> > > > > > be
> > > > > > > > > > helpful
> > > > > > > > > > > > for
> > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > collectors.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>> Thanks,
> > > > > > > > > > > > > > > > > > > > > > > >>>>> Andrew
> > > > > > > > > > > > > > > > > > > > > > > >>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> On 2026/07/26 07:48:20 
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> Aditya
> > > > > > Kousik
> > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> Hello Andrew,
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> I’m reminded of the 
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> client.id
> > > > > > > > > discussion
> > > > > > > > > > we
> > > > > > > > > > > > had
> > > > > > > > > > > > > > back
> > > > > > > > > > > > > > > > in
> > > > > > > > > > > > > > > > > > > > > KIP-1313
> > > > > > > > > > > > > > > > > > > > > > > re: client instance id. After that
> > > > > > > discussion,
> > > > > > > > > I
> > > > > > > > > > > > have a
> > > > > > > > > > > > > > WIP
> > > > > > > > > > > > > > > > KIP
> > > > > > > > > > > > > > > > > > that
> > > > > > > > > > > > > > > > > > > > > sets a
> > > > > > > > > > > > > > > > > > > > > > > foundation for shipping client 
> > > > > > > > > > > > > > > > > > > > > > > metadata
> > > > > > > tags to
> > > > > > > > > > be
> > > > > > > > > > > > sent
> > > > > > > > > > > > > > for
> > > > > > > > > > > > > > > > > > telemetry.
> > > > > > > > > > > > > > > > > > > > > I
> > > > > > > > > > > > > > > > > > > > > > > was hoping we could discuss if 
> > > > > > > > > > > > > > > > > > > > > > > part of
> > > > > > that
> > > > > > > > > > approach
> > > > > > > > > > > > > > could
> > > > > > > > > > > > > > > > fit
> > > > > > > > > > > > > > > > > > this
> > > > > > > > > > > > > > > > > > > > > KIP.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> AK1. I had a note on the
> > > > > > motivation
> > > > > > > of
> > > > > > > > > > > > selecting a
> > > > > > > > > > > > > > > > > > “framework”
> > > > > > > > > > > > > > > > > > > > > as a
> > > > > > > > > > > > > > > > > > > > > > > blessed abstraction. The KIP 
> > > > > > > > > > > > > > > > > > > > > > > mentions
> > > > > > it’s
> > > > > > > for
> > > > > > > > > > the
> > > > > > > > > > > > client
> > > > > > > > > > > > > > > > > > metadata and
> > > > > > > > > > > > > > > > > > > > > > > easier problem diagnosis. This is 
> > > > > > > > > > > > > > > > > > > > > > > akin to
> > > > > > > an
> > > > > > > > > > > > > > “application id”
> > > > > > > > > > > > > > > > > > that
> > > > > > > > > > > > > > > > > > > > > > > non-framework clients usually tag 
> > > > > > > > > > > > > > > > > > > > > > > with.
> > > > > > > > > > > > > > > > > > > > > > > >>>>>>
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> KIP-606 took an approach 
> > > > > > > > > > > > > > > > > > > > > > > >>>>>> like
> > > > > > > > > > > > > > > > > > metrics.context.<key>=<val>. If we
> > > > > > > > > > > > > > > > > > > > > > > allow 
> > > > > > > > > > > > > > > > > > > > > > > client.metadata.<key>=<val>, then 
> > > > > > > > > > > > > > > > > > > > > > > a
> > > > > > > > > > > > > > > > framework/application
> > > > > > > > > > > > > > > > > > name
> > > > > > > > > > > > > > > > > > > > > and
> > > > > > > > > > > > > > > > > > > > > > > version can sit in such a metadata
> > > > > > context
> > > > > > > and
> > > > > > > > > be
> > > > > > > > > > > > sent
> > > > > > > > > > > > > > with
> > > > > > > > > > > > > > > > > > ApiVersion
> > > > > > > > > > > > > > > > > > > > > RPC.
> > > > > > > > > > > > > > > > > > > > > > > Of course, this is an open box 
> > > > > > > > > > > > > > > > > > > > > > > approach
> > > > > > > rather
> > > > > > > > > > than
> > > > > > > > > > > > just
> > > > > > > > > > > > > > the<

Reply via email to