Does a Kafka Streams consumer also have that same limitation of possible duplicates?
Thanks, Chris On Fri, Sep 27, 2019 at 11:56 AM Matthias J. Sax <matth...@confluent.io> wrote: > Enabling "read_committed" only ensures that a consumer does not return > uncommitted data. > > However, on failure, a consumer might still read committed messages > multiple times (if you commit offsets after processing). If you commit > offsets before you process messages, and a failure happens before > processing finishes, you may "loose" those messages, as they won't be > consumed again on restart. > > Hence, if you have a "consumer only" application, not much changed and > you still need to take care in your application code about potential > duplicate processing of records. > > -Matthias > > > On 9/27/19 7:34 AM, Alessandro Tagliapietra wrote: > > You can achieve exactly once on a consumer by enabling read committed and > > manually committing the offset as soon as you receive a message. That way > > you know that at next poll you won't get old message again. > > > > On Fri, Sep 27, 2019, 6:24 AM christopher palm <cpa...@gmail.com> wrote: > > > >> I had a similar question, and just watched the video on the > confluent.io > >> site about this. > >> From what I understand idempotence and transactions are there to solve > the > >> duplicate writes and exactly once processing, respectively. > >> > >> Is what you are stating below is that this only works if we produce > into a > >> kafka topic and consume from it via a kafka stream, but a regular > >> kafka consumer won't get the guarantee of exactly once processing? > >> > >> Thanks, > >> Chris > >> > >> > >> On Sat, Aug 31, 2019 at 12:29 AM Matthias J. Sax <matth...@confluent.io > > > >> wrote: > >> > >>> Exactly-once on the producer will only ensure that no duplicate writes > >>> happen. If a downstream consumer fails, you might still read message > >>> multiple times for all cases (ie, without idempotence, with idempotence > >>> enabled, or if you use transactions). > >>> > >>> Note, that exactly-once is designed for a read-process-write pattern, > >>> but not for a write-read pattern. > >>> > >>> -Matthias > >>> > >>> > >>> > >>> On 8/30/19 1:00 PM, Peter Groesbeck wrote: > >>>> For a producer that emits messages to a single topic (i.e. no single > >>>> message is sent to multiple topics), will enabling idempotency but not > >>>> transactions provide exactly once guarantees for downstream consumers > >> of > >>>> said topic? > >>>> > >>>> Ordering is not important I just want to make sure consumers only > >>> consumer > >>>> messages sent once. > >>>> > >>> > >>> > >> > > > >