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
2 changes: 2 additions & 0 deletions docs/portal/build/workers.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,8 @@ Scale a queue by starting more workers with the same registered types and a comp

Do not send a workflow to a queue that has no compatible workflow handler. Inspect `listWorkers()` and `describeTaskQueue()` before assuming a deployment received traffic.

An activity option such as `['queue' => 'payments-v2']` selects the queue of a newly scheduled activity execution. The runtime stores that resolved queue. Pending activities, their retries and repaired tasks keep it. Changing a worker's `taskQueue` does not move recorded work, and existing workflow runs keep their own workflow queue. Retain compatible workers on old queues while those dependencies remain. Follow the [recorded-queue transition and diagnostics procedure](https://durable-workflow.com/docs/polyglot/task-matching-dispatch/#recorded-activity-queues).

## Let the managed loop own the protocol

`Worker::run()` registers, negotiates heartbeat cadence, polls workflow/activity/query tasks, renews workflow-task leases, and reports terminal outcomes. Typed transient poll pressure is retried with capped backoff while registration heartbeats and shutdown checks remain responsive.
Expand Down
2 changes: 2 additions & 0 deletions docs/portal/operate/deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ Do not use the SDK repository's `main` branch as a production Composer source. I

Start new workers before draining the old pool. Keep old and new builds registered only when both can replay the histories routed to that queue. If a change is not replay-compatible, use a new task queue or a worker build-routing plan rather than hoping restarts choose the right code.

A new queue is not a migration of existing runs or activities. Previously scheduled activities, delayed retries and repaired tasks retain their recorded queue. Passive runs and continuation chains can still need old workers. Deploy the new pool and routing first, then keep compatible old pools available until their dependencies are accounted for and new work no longer creates them. An empty ready-task count or a fresh registration is not proof of safe retirement. Use the [recorded-queue procedure and existing run/queue diagnostics](https://durable-workflow.com/docs/polyglot/task-matching-dispatch/#recorded-activity-queues). Repair does not relocate work or extend its original total deadline. [Server #519](https://github.com/durable-workflow/server/issues/519) tracks the separate guarded retirement capability.

## Preserve workflow entry arguments

Recorded start input must still bind to the deployed workflow entry method.
Expand Down
Loading