FailureRecordingHandler
The event handler of one function: runs chain, then settles the ProcessingOutcome with failureRecorder and hands a failure to errorHandler.
Success: FailureRecorder.recordSuccess; an error there goes to errorHandler.
Failure: FailureRecorder.recordFailure, then errorHandler with the processing error (a recording error is added to it as suppressed). When the outcome does not acknowledge, the exchange withholds its acknowledgement, so the bus delivers the message again.
A failure whose in-process retries were exhausted (RetryableFilter) is recorded and handled as its cause, the error the function last failed with, as the wait notifier reports it.
Each outcome is counted in metrics (wow.processing.outcomes, tag outcome) with metricDescriptor.
With FailureRecorder.NONE and ackOnUnrecordedFailure on (the defaults), a failure is logged by the default error handler and acknowledged, as before 9.3.0.