Hi Chris,
Thanks for your reply. Sorry for the delay in responding.

The idea with client.framework.id is that it groups together a bunch of 
logically
related client connections. For Kafka Streams, it makes a bunch of producer,
consumer and admin connections, and it would be good to know which are related
to each other. We use client.framework.id for this.

For Kafka Connect, I think that you are correct that Connect worker
ID is the appropriate identifier. I have updated the KIP accordingly. If
there is a useful difference between connections made by the Kafka Connect 
runtime
for its own purposes (group management for example) and connections made
by a connector, it's probably worth being able to distinguish those using
this KIP. What makes sense here?

I have changed the KIP so that it disallows setting these new configs in
Kafka Connect configs.

Thanks,
Andrew

On 2026/10/05 23:36:24 Chris Egerton wrote:
> Hi Andrew,
> 
> I'm not sure about using the instance ID to report connector type and
> version. Concatenating the two and putting them in a single field removes
> structure and forces extra work on users who want to, e.g., view aggregate
> metrics for all versions of a connector. In addition, using it to
> identify unique Kafka Streams processes makes sense, but (to me at least)
> that means the intuitive use for it by Kafka Connect would be to report the
> worker ID (i.e., the advertised URL) or the exact entity that the client is
> used for (connector name for connectors, task ID for tasks). What do you
> think about using the instance ID field to report the Connect worker ID
> instead, since the connector name/task ID are already set in the default
> client IDs used by Kafka Connect?
> 
> I wonder if there could be a sort of middle ground between "client" and
> "framework" that would be a good fit for connector type/version--what do
> you think about "application", as in "client.application.name" and
> "client.application.version"? The Kafka Streams equivalents for these would
> be the existing "application.id" property and a new "application.version"
> property. This could also be independently useful for Kafka Streams
> developers who want to track rollouts that update Streams configs and/or
> topologies.
> 
> Also, I think that the Kafka Connect runtime should disallow setting any of
> these properties, either in the worker config or in a connector config.
> 
> Cheers,
> 
> Chris
> 
> On Mon, Oct 5, 2026, 17:36 Andrew Schofield <[email protected]> wrote:
> 
> > Hi Lianet,
> > Thanks for your reply. I have posted an updated version of the KIP which
> > adds a third config client.framework.id which a framework can use to set
> > an additional framework-specific ID. For Kafka Streams, it's the process
> > ID which can be used to group together connections which are part of the
> > same logical application. For Kafka Connect, I suggest that the
> > connector class and version are used. The validation rules for the
> > framework ID are slightly different because the ID is derived from
> > sources which the user does not directly control (such as the version
> > string from a Kafka Connect connector).
> >
> > LM1: The ClientTelemetryContext interface is implemented by the broker
> > with the intent that the metrics plugin can use it to obtain the context
> > it needs to annotate the metrics. As such, there is no need to provide
> > default implementations of the new methods.
> >
> > LM2: If an app is setting the configs intended for the framework to set
> > the framework's values win.
> >
> > LM3: The new framework ID has a more lenient regex and the KIP describes
> > how Kafka Connect forms the framework ID from the class name and the
> > connector version.
> >
> > I think this update should answer most of the questions, and probably
> > spark some more.
> >
> > Thanks,
> > Andrew
> >
> > On 2026/10/02 20:17:23 Lianet Magrans wrote:
> > > 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