[ 
https://issues.apache.org/jira/browse/KAFKA-4911?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15928218#comment-15928218
 ] 

Kevin Conaway commented on KAFKA-4911:
--------------------------------------

This would also be useful for error handling as well if you want to tie the 
Exception from the callback to a specific record.

> Add ProducerRecord to ProducerInterceptor#onAcknowledgement
> -----------------------------------------------------------
>
>                 Key: KAFKA-4911
>                 URL: https://issues.apache.org/jira/browse/KAFKA-4911
>             Project: Kafka
>          Issue Type: Improvement
>          Components: clients, producer 
>    Affects Versions: 0.10.2.0
>            Reporter: Kevin Conaway
>
> [~apovzner] I'd like to propose adding the {{ProducerRecord}} field to the 
> {{onAcknowledgement}} callback in the {{ProducerInterceptor}} interface that 
> was added in KAFKA-3162
> The issue I'm having is that its not possible to determine if a specific 
> record was sent (based on the record content or key), only that _some_ record 
> was sent based on the {{RecordMetadata}}.
> From reading the KIP and the initial mailing list discussion, it seems that 
> the design was modeled after the existing {{Producer.Callback}} interface.  
> This model makes sense given that callbacks are typically anonymous functions 
> where you would have access to the producer record:
> {code:java}
>     ProducerRecord record = ...;
>     producer.send(record, new Callback() {
>       @Override
>       public void onCompletion(RecordMetadata recordMetadata, Exception e) {
>         // do something with record
>       }
>     })
> {code}
> However, based on my understanding of the interceptor design, the interceptor 
> should be thread safe and thus stateless.  Even if you wanted to make it 
> stateful, its not easy to tie together a record from {{onSend}} to 
> {{onAcknowledgement}}
> With that in mind, is there a way that the producer interceptor API can be 
> modified so that implementers can be aware of the key & content of the record 
> that was acknowledged?



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to