Hi Fred, Thanks for the KIP!
Questions/comments: How do we handle the case where CompletedFetch.parseRecord isn’t able to construct a well-formed ConsumerRecord (i.e. the values it needs are missing/corrupted/etc.)? Please change RecordDeserializationException’s getConsumerRecord() method to be named consumerRecord() to be consistent. Should we change the return type of consumerRecord() to be Optional<ConsumerRecord<byte[], byte[]>> in the cases where even a “raw” ConsumerRecord can’t be created? To avoid the above, does it make sense to include a Record object instead of a ConsumerRecord? The former doesn’t include the leaderEpoch or TimestampType, but maybe that’s OK? Thanks, Kirk > On Apr 10, 2024, at 8:47 AM, Frédérik Rouleau <froul...@confluent.io.INVALID> > wrote: > > Hi everyone, > > To make implementation of DLQ in consumer easier, I would like to add the > raw ConsumerRecord into the RecordDeserializationException. > > Details are in KIP-1036 > <https://cwiki.apache.org/confluence/display/KAFKA/KIP-1036%3A+Extend+RecordDeserializationException+exception> > . > > Thanks for your feedback. > > Regards, > Fred