Description
Describe the proposal
As of now, Dapr only supports providing a RetryPolicy for workflow tasks. However, the capability of RetryPolicy is limited. DurableTask has a class called RetryHandler that allows for a lot more customization. RetryHandler allows users to selectively retry based on logic implemented by the user. For example, as of no way to selectively retry tasks based on what exception is thrown with the current built-in retry mechanisms. This would allow for that
Additionally, I also propose that we modify DurableTask to allow for both RetryHandler and RetryPolicy to be used simultaneously. This would allow for the backoff, max retry attempts, and retry timeout, and any other features from RetryPolicy, to be used without having to recreate that logic inside a RetryHandler