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