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

Reply via email to