Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .gitbook/assets/retry-cycle-example-usage.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@
* [Correlating messages](features/process/correlation-service.md)
* [Job service](features/process/job-service.md)
* [Process links](features/process/process-link.md)
* [Job Retry cycles](features/process/retry-cycle.md)
* [For developers](features/process/process/README.md)
* [Integrating spring beans in a process](features/process/process/integrate-spring-bean-in-process.md)
* [Whitelisting Spring beans for Operaton](features/process/process/whitelist-spring-bean.md)
Expand Down
41 changes: 41 additions & 0 deletions features/process/retry-cycle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Retry cycles for failed jobs

Jobs can fail for different reasons, for example when external services fail.
Retry strategies provide resilience against temporary outages and help avoid incidents.
Valtimo includes intelligent retry strategies with sensible defaults,
which can be selectively overridden through configuration.

### Available retry cycles

The following retry cycles are available and can be applied to [specific BPMN-elements](https://docs.operaton.org/docs/documentation/user-guide/process-engine/the-job-executor/#retry-time-cycle-configuration).

* DEFAULT = R3/PT1M,PT30M,PT2H
* QUICK = R3/PT30S,PT2M,PT10M
* CRITICAL = R5/PT1M,PT15M,PT4H,PT24H,PT48H
* DATABASE = R4/PT10S,PT1M,PT5M,PT15M // For connection/lock issues
* EMAIL = R3/PT5M,PT20M,PT1H // For SMTP delivery issues
* WEB_SERVICE = R4/PT30S,PT3M,PT8M,PT10M // For HTTP timeouts/5xx errors
* FILE_TRANSFER = R3/PT1M,PT15M,PT1H // For upload/download issues


### Overriding and custom cycles
These retry cycles can be overridden in application.yml. Furthermore, custom cycles can be added
using the Spring Boot config files. Adjust the property `valtimo.process.jobs.retry.cycles` in application.yml.

```yml
valtimo:
process:
jobs:
retry:
cycles:
critical: R3/PT1M,PT15M,PT1H
default: R4/PT10S,PT1M,PT5M,PT15M
custom: R5/PT10S,PT1M,PT5M,PT15M,PT2H
```

## How to use

Retry cycles are available in expressions referencing the `retryCycleProvider` bean. See the following example:

![retry cycle usage](../../.gitbook/assets/retry-cycle-example-usage.png)

22 changes: 22 additions & 0 deletions release-notes/13.x.x/13.1.2.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,27 @@
# 13.1.2

## New features
### Retry cycles for failed jobs
Standard Retry cycles are defined which can be add to the following BPMN elements:
* Tasks
* Call Activities
* Sub processes
* Events

The following retry cycles are available:
* DEFAULT = R3/PT1M,PT30M,PT2H
* QUICK = R3/PT30S,PT2M,PT10M
* CRITICAL = R5/PT1M,PT15M,PT4H,PT24H,PT48H
* DATABASE = R4/PT10S,PT1M,PT5M,PT15M // For connection/lock issues
* EMAIL = R3/PT5M,PT20M,PT1H // For SMTP delivery issues
* WEB_SERVICE = R4/PT30S,PT3M,PT8M,PT10M // For HTTP timeouts/5xx errors
* FILE_TRANSFER = R3/PT1M,PT15M,PT1H // For upload/download issues

These retry cycles can be customized in application.yml.
In addition, custom cycles can be defined through Spring Boot configuration files.

see more about it [here](../../features/process/retry-cycle.md)

## Security improvements

* A security advisory has been published [here](https://github.com/valtimo-platform/valtimo-backend-libraries/security/advisories/GHSA-w48j-pp7j-fj55).
Expand Down