Skip to content

style: clarify workflow activity retry fields/defaults #836

@passuied

Description

@passuied

Describe the WORKFLOW SDK feature

There are multiple gotchas in the workflow activity retry policies as described below:

ACTIVITY_RETRY_POLICY = RetryPolicy(
    first_retry_interval=timedelta(seconds=1),
    
   # max_number_of_attempts is the total attempt count, not the retry count
    max_number_of_attempts=5,
    backoff_coefficient=3,
   
    # Set max_retry_interval else there won't be any retries
    max_retry_interval=timedelta(seconds=10),
   
    # DON'T set retry_timeout. If the timeout is hit, the entire workflow fails and the
    # final activity isn't executed.
)

https://github.com/dapr/python-sdk/blob/main/ext/dapr-ext-workflow/dapr/ext/workflow/retry_policy.py#L26
go-sdk ref https://github.com/dapr/durabletask-go/blob/main/workflow/workflow.go#L147

acceptance criteria:

  • update the field values to sensible defaults if not provided
  • max_number_of_attempts can remain as is, or become deprecated (still supported) and a new field of max_attempts added that will eventuallyyyyy replace this field
  • all field docs strings updated to be clearer on what they do
  • ensure that retries still apply if max_retry_interval is set
  • update retry_timeout to indicate that if this fails then the workflow will fail

Release Note

RELEASE NOTE: ADD Clarify workflow activity retry policies fields and defaults

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Status

    Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions