Hi All,

I have KafkaStreams application (processor API) that does roughly the below
steps.

1. read
2. add to state
3. check state size (count based trigger)
3.1 process
3.2 delete records from state
3.3 forward
3.4 commit
(kafka internally does)
3.4.1 flush state
3.4.2 flush producer
3.4.3 commit offset

Have the following questions regarding failures at different steps:

1. Am I correct in assuming that failure at steps 1, 2, 3.1 & 3.2 is fine
(will read records from last committed offset and rebuild the state and
continue with rest of the steps.
2. When will forward at step 3.3 have effect? will it be sent out only at
3.4.2 (when producer is flushed) or can it happen before that? if it can
happen before, then any failure after 3.3 can cause duplicates?
3. if forward will take effect only during flush, still a failure between
3.4.2 and 3.4.3 can cause duplicates?
4. willl setting processing.guarantee=exactly_once solve the duplicates
issue?

Thanks,
Vishnu

Reply via email to