Skip to content
Merged
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
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Changelog

## 3.2.1

- Add `Worker::recover_transient_outages(true)` for long-running service workers.
Retryable poll and worker-heartbeat failures keep retrying with capped backoff
and the original poll request identity. Shutdown interrupts retry waits.
- Preserve bounded retries by default and for `run_once`. Disabling ordinary
retries still takes precedence. Authentication, protocol, codec, handler and
task settlement failures remain errors.

## 3.2.0

- Add typed worker-session options and shared create, renew and close handles.
Expand Down
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "durable-workflow"
version = "3.2.0"
version = "3.2.1"
edition = "2021"
description = "Rust client and worker SDK for Durable Workflow Cloud and self-hosted Server"
license = "MIT"
Expand All @@ -14,7 +14,7 @@ categories = ["api-bindings", "asynchronous"]
include = ["/src/**", "/schema/**", "/examples/**", "/Cargo.toml", "/README.md", "/CHANGELOG.md", "/LICENSE"]

[package.metadata.durable-workflow]
product-train = "3.2.0"
product-train = "3.2.1"
compatibility-authority = "protocol-manifests"
supported-server-versions = "2.0.0"
qualified-server-version = "2.5.1"
Expand Down
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,20 @@ The runnable session example uses a real process-local cache and prints its reso
generation. Use Server 2.5.1 / Native 2.4.1 for session history and original TTL
preservation. Session support starts with SDK 3.2.0.

### Recovering from Server outages

For a long-running service worker, enable `.recover_transient_outages(true)`
on `Worker`. Retryable poll and worker-heartbeat failures then keep retrying
with capped exponential backoff. A retried poll keeps its original request ID.
`run_until` interrupts retry waits when shutdown arrives and settles any poll
response already in flight.

The default preserves bounded retries. `run_once` remains bounded in either
mode, and `WorkerRetryPolicy.max_retries = 0` disables ordinary retries.
Authentication, protocol, codec, handler and task settlement failures still
return an error. Registration and deregistration are outside this recovery
option. Keep a process supervisor for startup failures and process crashes.

### Runnable examples

| Example | Demonstrates |
Expand Down
Loading
Loading