ijuma commented on code in PR #18726:
URL: https://github.com/apache/kafka/pull/18726#discussion_r1976186661


##########
clients/src/main/resources/common/message/FetchResponse.json:
##########
@@ -106,7 +106,7 @@
         ]},
         { "name": "PreferredReadReplica", "type": "int32", "versions": "11+", 
"default": "-1", "ignorable": false, "entityType": "brokerId",
           "about": "The preferred read replica for the consumer to use on its 
next fetch request."},
-        { "name": "Records", "type": "records", "versions": "0+", 
"nullableVersions": "0+", "about": "The record data."}

Review Comment:
   @junrao I don't think we can break so many clients in the wild. That would 
definitely require a KIP (and I would be against a KIP that did that 
immediately - it would require years of notice). So, we'd have to specify very 
clearly when null can or cannot be set. Your proposed definition doesn't 
actually cover the case that breaks librdkafka: [authz 
errors](https://github.com/confluentinc/librdkafka/blob/876cf4a7e4a339fda8cea1c4a650c168a351a176/tests/0119-consumer_auth.cpp#L141).
   
   My take:
   1. I can remove non-nullable from the schema if people feel strongly.
   2. But I will still make sure the Kafka code never returns null for records.
   
   It's actually more work to ensure the latter without the former, but I am ok 
going that direction. I am not ok with any solution that breaks recently 
released and widely deployed clients.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to