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< > > > > > >
