Hi, Andrew. Thanks for the comment. 

AS1: my original intent was just stringValue() but I felt a more descriptive 
name would be self-documenting. In this case it might be simpler to go with 
stringValue with an overload.

I’ve updated the KIP.

Thanks,
Aditya

> On May 27, 2026, at 06:07, Andrew Schofield <[email protected]> wrote:
> 
> Hi,
> Thanks for the KIP. Just one small comment.
> 
> AS1: The utf8StringValue() method name is rather inelegant. Any reason you 
> didn't just go for stringValue() and just describe in the Javadoc that it 
> uses the UTF8 charset?
> 
> Thanks,
> Andrew
> 
>> On 2026/05/27 05:17:51 Aditya Kousik wrote:
>> Hi Mickael, thanks for the comments.
>> 
>> MM1: Yes I’d left the implementation detail in the public API section from 
>> the old version. I’ve moved it.
>> 
>> MM2: Good call, I’ve added the behaviour as Javadoc in the interface section.
>> 
>> Thanks,
>> Aditya
>> 
>>> On 2026/05/26 13:53:06 Mickael Maison wrote:
>>> Hi,
>>> 
>>> Thanks for the updates. That seems reasonable improvement to the header 
>>> APIs.
>>> 
>>> MM1: In the Public Interfaces section, the RecordHeader class is still
>>> mentioned. Is it a mistake? I don't think we want to expose that
>>> class.
>>> 
>>> MM2: It seems you defined the behavior of the adders and accessors in
>>> the Proposed Changes section. Could you add that as javadoc in the
>>> Public Interfaces section?
>>> 
>>> Thanks,
>>> Mickael
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> On Tue, May 26, 2026 at 6:33 AM Aditya Kousik <[email protected]> wrote:
>>>> 
>>>> Hey folks,
>>>> 
>>>> Quick follow-up on this KIP. The changes proposed are all client side QoL 
>>>> updates for easier access to the Header interface(s) without any change to 
>>>> bytes on the wire.
>>>> 
>>>> Best,
>>>> Aditya
>>>> 
>>>>> On May 11, 2026, at 18:50, Aditya Kousik <[email protected]> wrote:
>>>>> 
>>>>> Hi all,
>>>>> Gentle ping on KIP-1308.
>>>>> 
>>>>> Even in the simple case of logging a header value you already know the 
>>>>> type of, you’re still reaching for ByteBuffer/new String() today:
>>>>> 
>>>>> // Today
>>>>> int retryCount = ByteBuffer.wrap(header.value()).getInt();
>>>>> log.debug(“retryCount={}”, retryCount);
>>>>> 
>>>>> // With KIP-1308
>>>>> log.debug(“retryCount={}”, header.intValue());
>>>>> 
>>>>> Looking forward to your thoughts.
>>>>> 
>>>>> Thanks,
>>>>> Aditya
>>>>> 
>>>>>> On Apr 16, 2026, at 12:04, Aditya Kousik <[email protected]> wrote:
>>>>>> 
>>>>>> Hi Mickael and Andrew,
>>>>>> 
>>>>>> I’ve updated the KIP to reflect new methods on the Header(s) interface 
>>>>>> and new static factory methods.
>>>>>> 
>>>>>> Please take a look when you can.
>>>>>> 
>>>>>> Thanks,
>>>>>> Aditya
>>>>>> 
>>>>>>>> On Apr 3, 2026, at 08:13, Aditya Kousik <[email protected]> wrote:
>>>>>>> 
>>>>>>> Hi Mickael,
>>>>>>> 
>>>>>>> That’s a solid point. I realise there are others like me who have been 
>>>>>>> accessing the RecordHeader class directly 
>>>>>>> (https://github.com/spring-projects/spring-kafka/blob/813b9af333a6b812617e970f34ca0ae447dda7fb/spring-kafka/src/main/java/org/springframework/kafka/listener/KafkaMessageListenerContainer.java#L2812)
>>>>>>>  by virtue of it being public and well documented.
>>>>>>> 
>>>>>>> I don’t want to break the precedence and make RecordHeader part of the 
>>>>>>> public API at this point, but I like your idea of adding addXXX-like 
>>>>>>> methods to Headers.java. This way the KIP adds new methods to both 
>>>>>>> RecordHeader(s) and Header(s) with the helper methods. I’ve updated the 
>>>>>>> KIP to reflect this.
>>>>>>> 
>>>>>>> Best,
>>>>>>> Aditya
>>>>>>> 
>>>>>>>>> On 2026/04/02 14:56:36 Mickael Maison wrote:
>>>>>>>> Hi,
>>>>>>>> 
>>>>>>>> Thanks for the KIP. I'm a bit confused because RecordHeader is not
>>>>>>>> part of the public API. It's in
>>>>>>>> org.apache.kafka.common.header.internals.
>>>>>>>> To create a Header, users have to create their own Header
>>>>>>>> implementation, or more likely use Headers.add(String key, byte[]
>>>>>>>> value).
>>>>>>>> 
>>>>>>>> So either this would require making RecordHeader part of the public
>>>>>>>> API, or an alternative is to add Headers.add() overloads that take
>>>>>>>> common types as the 2nd argument.
>>>>>>>> 
>>>>>>>> Thanks,
>>>>>>>> Mickael
>>>>>>>> 
>>>>>>>>> On Wed, Apr 1, 2026 at 7:05 PM Andrew Schofield <[email protected]> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> Hi
>>>>>>>>> Thanks for the KIPs. You're writing them faster than the community 
>>>>>>>>> can read them :)
>>>>>>>>> 
>>>>>>>>> I'll take a proper look soon.
>>>>>>>>> 
>>>>>>>>> Thanks,
>>>>>>>>> Andrew
>>>>>>>>> 
>>>>>>>>> On 2026/04/01 15:35:47 Aditya Kousik wrote:
>>>>>>>>>> Hi all,
>>>>>>>>>> 
>>>>>>>>>> I'd like to start a discussion on KIP-1308: Extend RecordHeader API 
>>>>>>>>>> for Common Value Types.
>>>>>>>>>> 
>>>>>>>>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1308%3A+Extend+RecordHeader+API+for+Common+Value+Types
>>>>>>>>>> 
>>>>>>>>>> Putting a string or int into a RecordHeader today requires manual 
>>>>>>>>>> byte encoding; reading it back requires the same in reverse. This 
>>>>>>>>>> KIP adds static factories (RecordHeader.ofString, ofInt, etc.) and 
>>>>>>>>>> corresponding typed accessors, with no wire format changes.
>>>>>>>>>> 
>>>>>>>>>> Looking forward to your feedback.
>>>>>>>>>> 
>>>>>>>>>> Thanks,
>>>>>>>>>> Aditya Kousik
>>>>>>>>>> 
>>>>>>>> 
>>>>>> 
>>> 
>> 

Reply via email to