Open mikhailshilkov opened 7 years ago
You can read this topic https://github.com/akka/akka/issues/19222
I don't understand the internals of Akka good enough to find those arguments compelling. If something is not performant and potentially unreliable, it doesn't mean you can't provide the capability to opt-in when needed. At least, developer experience could greatly benefit of DL messages. Thanks for the link.
Probably Akka Streams is not the best solution to create a custom message queue. ZeroMQ was designed for that purposes.
I'm searching for a way to aggregate all failed messages from all stream stages into a place, normally known as Dead-Letter queue. I.e. when I set my Streams supervision strategy to Resume, the failed message should not disappear in nowhere, but should be reportable and loggable.
Ideally, the Dead-Letter would contain a failed item together with exception it raised, for any stage in the graph. Then I will probably persist the item and will replay it once the problem is resolved. Async stages have actors behind them, so should be doable in the end.
So far, I was able to log all exceptions by extracting them from the decider (
Func<Exception, Decider>
), but that's as far as I am.