[ 
https://issues.apache.org/jira/browse/KAFKA-4713?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matthias J. Sax resolved KAFKA-4713.
------------------------------------
    Resolution: Won't Fix

In AK 2.7, we introduces the new `api.Processor` with new 
`api.ProcessorContext` which partially address this issue.

The old `Processor` is removed with 4.0.0 release. Thus, closing this ticket.

> Processors cannot call public methods on ProcessorContext from the init method
> ------------------------------------------------------------------------------
>
>                 Key: KAFKA-4713
>                 URL: https://issues.apache.org/jira/browse/KAFKA-4713
>             Project: Kafka
>          Issue Type: Improvement
>          Components: streams
>    Affects Versions: 0.10.0.1
>            Reporter: Bruno Felaco
>            Priority: Major
>
> Streams passes the ProcessorContext to the init method of a Processor on 
> startup when a topic/partition is assigned. This is the only means that a 
> Processor has to obtain a reference to the ProcessorContext, which is 
> required if the implementation needs to be aware of the particular 
> topic/partition that is being processed. However, from within the init() 
> method, the only thing the implementation is allowed to do with the 
> ProcessorContext is schedule periodic tasks and create/access any state 
> stores.  It is not allowed to get the topic, partition, or current offset. 
> This severely limits what an implementation can do in init. An implementation 
> may need to check with or notify another component or system that it has been 
> assigned a particular topic/partition. As far as I can see, there is no other 
> mechanism in Streams to allow an implementation to react to the assignment of 
> topic/partition and perform any such initialization, since Streams explicitly 
> controls the ConsumerRebalanceListener. The implementation would have to wait 
> for the receipt of the first record to get this information which is too late 
> for certain use cases.
> I propose that the following methods should be usable from the init method:
> topic()
> partition()
> and also, but not as critical:
> offset()
> timestamp()
> Alternatively, streams could allow an implementation to register a separate 
> listener that would be invoked from the global ConsumerRebalanceListener  
> when a topic/partition is assigned.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to