to be more clear, does using transactions and providing the
transactional.id, makes it possible for
a producer to be idempotent even across sessions ?

Thanks :)

On Fri, May 15, 2020 at 9:29 PM Raffaele Esposito <rafaelral...@gmail.com>
wrote:

> Hi Boynag,
> Yeah what you wrote is clear to me, that's why I asked this question.
>
> What I don't understand if in the case of a producer we build a producer
> sourcing the data from whatever source (MySql for example) we need to take
> care explicitly of
> the mentioned idempotency per session problem.
>
> Do we need to take care of this, or is it already taken care of when using
> transactions ?
>
>
> On Fri, May 15, 2020 at 9:23 PM Boyang Chen <reluctanthero...@gmail.com>
> wrote:
>
>> Hey Raffaele,
>>
>> the producer id is getting assigned upon receiving the
>> producer.initTransaction call at the broker side. It guarantees the
>> uniqueness of a producer for current lifecycle, which you don't have to
>> configure manually.
>>
>> Transactional API on the other hand, includes idempotent produce for sure.
>> You need to provide a unique transactional.id though. Feel free to learn
>> more high level stuff through this blog:
>> https://www.confluent.io/blog/transactions-apache-kafka/.
>>
>> Boyang
>>
>> Boyang
>>
>> On Fri, May 15, 2020 at 11:48 AM Raffaele Esposito <
>> rafaelral...@gmail.com>
>> wrote:
>>
>> > In relation to producer idempotency Kafka documentation says:
>> >
>> >
>> > ... Since each new instance of a producer is assigned a new, unique,
>> PID,
>> > we can only guarantee idempotent production within a single producer
>> > session.
>> >
>> >
>> > Does it mean that when we build a producer sourcing the data from
>> whatever
>> > source (MySql for example) we need to take care explicitly of this
>> problem
>> >
>> > and put in place effective counter measures, like checking what was the
>> > last message actually produced successfully on Kafka ?
>> >
>> >
>> > What if we use transactions, even in the case we don't need really need
>> > transactional logic on writing messages to different partitions in an
>> all
>> > or nothing fashion ?
>> >
>> > Would using transactions in our producer get rid of the idempotency
>> issue ?
>> >
>> >
>> >
>> > Thanks!
>> >
>>
>

Reply via email to