Special thanks to @davidmrdavid for helping me figure out (without him knowing it) how to design retries in a language that doesn't support async/await. I borrowed the strategy for implementing retry policies from the Durable JS codebase.
After this PR gets merged, I plan to work on imperative retry policies, implemented in code.
This PR covers the first two bullets of https://github.com/microsoft/durabletask-java/issues/18: task options and declarative retry policies.
Summary of changes:
TaskOptions
parameter for activities and sub-orchestrationsRetryPolicy
class which can be applied to TaskOptions to configure declarative retries.@Nullable
attributes to help proactively identify NullPointerException is the code (I got hit by this a couple times during debugging).Much of the design is inspired by the retry work I recently did for .NET Isolated: https://github.com/microsoft/durabletask-dotnet/pull/6.
Special thanks to @davidmrdavid for helping me figure out (without him knowing it) how to design retries in a language that doesn't support async/await. I borrowed the strategy for implementing retry policies from the Durable JS codebase.
After this PR gets merged, I plan to work on imperative retry policies, implemented in code.