Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add retry configuration properties to OOTB connector templates #1007

Closed
chillleader opened this issue Aug 8, 2023 · 4 comments · Fixed by #1469
Closed

Add retry configuration properties to OOTB connector templates #1007

chillleader opened this issue Aug 8, 2023 · 4 comments · Fixed by #1469
Assignees
Labels
kind:task Categorizes an issue or PR as general maintenance, i.e. cleanup, refactoring, etc. target:8.4

Comments

@chillleader
Copy link
Member

chillleader commented Aug 8, 2023

What should we do?

In 0.22.0 we have introduced the support for retry backoff. Now we should support these new features in all outbound OOTB Connector templates:

  • Retries (type zeebe:taskDefinition:retries) to define the number of retries
  • Backoff (type zeebe:taskHeader, name retryBackoff) to define the backoff in ISO 8601 duration format, e.g. PT1M

We can choose either one of the following options:

  • Add these properties to all OOTB templates
  • Only add these properties to first-class connectors such as REST & GraphQL, and protocol connectors can be pre-configure with a meaningful value or not set this at all (which will result in 3 retries).

Why should we do it?

To make the new retry features accessible to the general audience.

@chillleader chillleader added the kind:task Categorizes an issue or PR as general maintenance, i.e. cleanup, refactoring, etc. label Aug 8, 2023
@bastiankoerber
Copy link

we will combine this with our generator epic

@sbuettner
Copy link
Contributor

As discussed in grooming:
Default value for retries: 3
Default value for retryBackoff: 0

Include in element template generator as a non-hidden property in a new "Retry" category which should be collapsed by default (after the Error handling category).

@chillleader
Copy link
Member Author

After testing the retries templating altogether I discovered a blocker for this issue. Although zeebe:taskDefinition:retries binding exists in the element template schema, it is actually not implemented in the modeler, and there is a stale PR that is supposed to add the support. There is also an open issue to track this: camunda/camunda-modeler#2936

@saig0
Copy link
Member

saig0 commented Oct 5, 2023

I'm looking forward to seeing this feature soon. 🚀

My use case:
I have a connector template that uses the REST connector. It calls an API with a rate limiting. If the connector is invoked too often (e.g. in a multi-instance activity), the request is blocked. It must wait a few seconds until it can retry. Currently, I would need to model the retry by myself in all places where the connector is used

I want to use the retryBackoff to handle the rate limiting. For example, by setting the retryBackoff to PT10S.

A fixed duration would be a great help. But we could provide even better options:

  • exponential backoff: built-in with a given factor and a limit
  • randomized with a limit (i.e. salting): for example, wait between 1 and 10 seconds

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:task Categorizes an issue or PR as general maintenance, i.e. cleanup, refactoring, etc. target:8.4
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants