Hello everyone, I'm looking into a way to reprocess messages in case of soft-errors (not exceptions) For example we have a topology that does this: input stream -> filtering/flatmap -> window and aggregate
in our aggregate step (maybe should be moved into an additional step) we make an API call to one of our services. What I would like to do is to reprocess that message, even better if possible just the window computation when the API call fails. By reading this https://docs.confluent.io/current/streams/concepts.html#streams-concepts-processing-guarantees if I'm not mistaken with the default at least one semantic, if I throw an exception the topology will reprocess the messages after the last commit, is it possible instead to just soft-retry the last message without throwing an exception and possibly reprocess also older correctly processed messages? Also, if my topology starts from a stream uses multiple stores before windowing, if there's an error in the windowing step, what happens to the stores changes? When the message is reprocessed, will the store be in the state it was after it processed the message on the first try? Thank you in advance -- Alessandro Tagliapietra