Randall

Thanks a lot for your thoughts. I was wondering if we would ever have to
make the API asynchronous, we could expose it as a new method right? If
that's a possibility would it be better if the API explicitly has semantics
of a synchronous API if the implementation is indeed going to be
synchronous.

On Sun, May 17, 2020, 9:27 AM Randall Hauch <rha...@gmail.com> wrote:

> On Sun, May 17, 2020 at 11:01 AM Magesh kumar Nandakumar <
> mage...@confluent.io> wrote:
>
> > Thanks Randall. The suggestion i made also has a problem when reporter
> > isn't enabled where it could potentially write records after error
> records
> > to sink before failing.
> >
> > The other concern i had with reporter being asynchronous. For some reason
> > if the reporter is taking longer because of say a specific broker issue,
> > the connector might still move forward and commit if it's not waiting for
> > the reporter.  During  this if the worker crashes we will now lose the
> bad
> > record
> >  I don't think this is desirable behavior. I think the synchronous
> reporter
> > provides better guarantees for all connectors.
> >
> >
> Thanks, Magesh.
>
> That's a valid concern, and maybe that will affect how the feature is
> actually implemented. I expect it to be a bit tricky to ensure that errant
> records are fully written to Kafka before the offsets are committed, so it
> might be simplest to start out with a synchronous implementation. But the
> API can still be an asynchronous design whether or not the implementation
> is synchronous. That gives us the ability in the future to change the
> implementation if we determine a way to handle all concerns. For example,
> the WorkerSinkTask may need to backoff if waiting to commit due to too many
> incomplete/unacknowledged reporter requests. OTOH, if we make the `report`
> method(s) synchronous from the beginning, it will be very challenging to
> change them in the future to be asynchronous.
>
> I guess it boils down to this question: do we know today that we will
> *never* want the reporter to write asynchronously?
>
> Best regards,
>
> Randall
>

Reply via email to