Skip to content

Add experimental sticky activity sessions and worker affinity - #1670

Closed
THardy98 wants to merge 3 commits into
mainfrom
dev/sticky-activities
Closed

THardy98 wants to merge 3 commits into
mainfrom
dev/sticky-activities

Conversation

@THardy98

Copy link
Copy Markdown
Contributor

Summary

  • Update the API subtree from the agreed sticky-activity branch.
  • Add opt-in session workers, per-activity workflow-sticky routing, and shared workflow/activity polling coordination.
  • Add separately committed experimental stable sticky queue names and single-workflow polling controls.

Review plan

Draft for CI and scope review. Python will be reviewed first, followed by the Core changes. No further Core changes are planned before that review.

Validation

  • Core unit suite: 545 passed, 2 ignored.
  • Workspace lint passed.
  • Full test lint was blocked locally by nested Cargo configuration conflicts.
  • Client tests: 189 passed; one failed because of the local UNIX socket path length.
  • Live-server affinity, retry routing, and server rate-limit behavior have not been validated.

Open in Delta

Import temporalio/api sticky-activity at c28c289a9dbcaba8297e5a61108c451b7d20777c. Preserve current Core request handling, serde generation, and payload-limit policy.

git-subtree-dir: crates/protos/protos/api_upstream
git-subtree-split: c28c289a9dbcaba8297e5a61108c451b7d20777c
Share workflow-style polling admission, activity capacity, and rate limiting. Protect built-in paired reservations, preserve workflow shutdown semantics, and scope command normalization and validation to session activities.
Keep stable sticky names, sticky-only worker construction, low-level single-workflow RPC options, and replay normalization of runtime affinity settings together in the short-lived experimental layer.
@THardy98

Copy link
Copy Markdown
Contributor Author

API prerequisite extracted to #1679. This draft now targets dev/sticky-activity-api, so Files changed shows only the general activity-session support and experimental affinity controls. No source changes or history rewrites were made; Python’s Core pin remains unchanged. After #1679 lands, retarget this draft to main.

@THardy98
THardy98 changed the base branch from dev/sticky-activity-api to main October 19, 2026 15:06
@THardy98

Copy link
Copy Markdown
Contributor Author

Superseded by #1687, stacked on the behavior-preserving extraction #1686. The replacement starts with the revised session API import and will grow in small reviewed steps. This branch is retained so existing Python Core pins remain available.

@THardy98 THardy98 closed this Oct 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant