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

Jake Maes reassigned SAMZA-1393:
--------------------------------

    Assignee: Daniel Nishimura

> Asynchronous SystemProducer API
> -------------------------------
>
>                 Key: SAMZA-1393
>                 URL: https://issues.apache.org/jira/browse/SAMZA-1393
>             Project: Samza
>          Issue Type: Bug
>            Reporter: Jake Maes
>            Assignee: Daniel Nishimura
>            Priority: Major
>
> We've encountered a number of issues with the current SystemProducer 
> interface with async processors. For example, see SAMZA-1392. 
> Most of the issues arise from the fact that there's no way for us to notify 
> the user when there is an async error in from the producer. Consider the 
> KafkaSystemProducer. If the KafkaProducer callback returns an exception, the 
> KafkaSystemProducer has to track it and find an appropriate time to handle 
> the exception. Depending on where the exception is handled and whether it is 
> swallowed the OffsetManager will need to be overly conservative to ensure we 
> do not checkpoint offsets until the corresponding send() was successful. 
> Sometimes whole batches of messages will fail, but only a single exception is 
> thrown, and there's no context from which send() the exception originated. 
> This will always be unintuitive to the user unless they are synchronously 
> notified of the exception. 
> There hasn't been much planning on this yet, but the idea is to have a send() 
> method that takes a callback which is called directly from the producer 
> callback. So the callback would flow something like this:
> producer.callback -> user.callback -> asynctask.callback -> (throw error | 
> offsetmanager.update)
> Some care needs to be taken to ensure that there are no gaps in the offsets 
> recorded by the OffsetManager. Also, it's not yet clear how to enable users 
> to retry a failed send.
> NOTE: depending on the implementation, the changes in SAMZA-1384 may need to 
> be reverted after this feature is implemented to ensure that the latest 
> offsets are checkpointed.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to