Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
f5164b3
Delivered server-side stream ranges to workflows.
moedash Aug 27, 2026
05a34e8
Let a workflow subscribe to a stream from lang.
moedash Aug 27, 2026
3b4e95e
Let a workflow publish to a stream from lang.
moedash Sep 14, 2026
d0884a3
Replayed recorded stream ranges before matching commands.
moedash Sep 14, 2026
280fe2d
Registered the stream machines with the coverage reporter.
moedash Sep 16, 2026
865805b
Matched the stream test mocks to the two-argument completion.
moedash Sep 16, 2026
f88f78c
Honored the per-runner timeout for the integ test matrix.
moedash Sep 16, 2026
4076ef2
Matched the nexus model WIT to upstream for the workflow-id policies.
moedash Sep 17, 2026
d6d66fb
Kept the closing completion visible to a history update's last task.
moedash Sep 18, 2026
76163d4
Checked replayed stream commands against the recorded event.
moedash Sep 18, 2026
83ab23f
Gave a data-only stream task its own replay activation.
moedash Sep 18, 2026
2342913
Ordered stream ranges and checked re-supplied slices against History.
moedash Sep 18, 2026
0cc74f7
Covered the stream delivery guards and each range's activation.
moedash Sep 19, 2026
6cf953e
Renumbered the stream protos to shared numbers and moved a doc comment.
moedash Sep 19, 2026
a677812
Added the changelog entry for the native stream commands and job.
moedash Sep 19, 2026
97cd172
Renamed the stream command, job and record to the api's record vocabu…
moedash Sep 21, 2026
f8c5fa8
Carried stream slices on a history pushed for replay.
moedash Sep 21, 2026
61b0cae
Failed a task owed stream records the response did not carry.
moedash Sep 21, 2026
6446174
Withheld a legacy query owed records the response did not carry.
moedash Sep 21, 2026
32c6669
Matched the stream protos to the api branch head.
moedash Sep 22, 2026
208b8d8
Delivered server-side stream ranges to workflows.
moedash Sep 25, 2026
7e12aa8
Gave a data-only stream task its own replay activation.
moedash Sep 25, 2026
d389f75
Withheld a legacy query owed records the response did not carry.
moedash Sep 25, 2026
17ddc93
Carried stream slices on a history pushed for replay.
moedash Sep 25, 2026
17ba00d
Covered the stream delivery guards and each range's activation.
moedash Sep 25, 2026
63e7159
Added the changelog entry for the native stream commands and job.
moedash Sep 25, 2026
ece6682
Tied the series to the original branch head.
moedash Sep 25, 2026
863b944
Merged the stream command identity fixes into the delivery branch.
moedash Sep 25, 2026
4cc44b0
Failed a re-supply that disagrees with History as the worker's.
moedash Sep 25, 2026
e3ee792
Scoped the data-only task flag to the task it describes.
moedash Sep 25, 2026
0592424
Said why the extra boundary page cannot be fetched more narrowly.
moedash Sep 25, 2026
0d15eff
Merged the dropped subscribe offset check into the delivery branch.
moedash Sep 25, 2026
4b3549a
Merged the stream field rename into the delivery branch.
moedash Sep 25, 2026
d321426
Carried the stream field rename into the delivery tests.
moedash Sep 25, 2026
a0fb9f5
Merged the current upstream Core into the stream delivery branch.
moedash Sep 25, 2026
c10921b
Moved the stream changelog entries back under Unreleased.
moedash Sep 26, 2026
adb29ae
Merged the subscribe start position into the delivery branch.
moedash Sep 28, 2026
c134d0c
Merged the wake protos and client call into the delivery branch.
moedash Oct 1, 2026
c43eefe
Merged the relocated wake client call into the delivery branch.
moedash Oct 1, 2026
0f7a804
Merged the wake's fold-rule wording into the delivery branch.
moedash Oct 1, 2026
e2f6783
Merged the C bridge wake dispatch into the delivery branch.
moedash Oct 1, 2026
a251511
Merge branch 'moe/AI-198-core-2-machines' into moe/AI-198-core-3-deli…
moedash Oct 2, 2026
8770d6f
Delivered channel notifications from the scheduled event.
moedash Oct 2, 2026
c63a05a
Merge branch 'moe/AI-198-core-2-machines' into moe/AI-198-core-3-deli…
moedash Oct 2, 2026
5bfd0c3
Merge branch 'moe/AI-198-core-2-machines' into moe/AI-198-core-3-deli…
moedash Oct 2, 2026
7b40358
Folded a task's channel notifications into one job per channel.
moedash Oct 2, 2026
1720745
Kept the held channel notification on a counter tie.
moedash Oct 2, 2026
03d711f
Merge branch 'moe/AI-198-core-2-machines' into moe/AI-198-core-3-deli…
moedash Oct 2, 2026
0057218
Merge branch 'moe/AI-198-core-2-machines' into moe/AI-198-core-3-deli…
moedash Oct 2, 2026
a9bbf77
Merge branch 'moe/AI-198-core-2-machines' into moe/AI-198-core-3-deli…
moedash Oct 2, 2026
7661e3a
Added the unsubscribe-notification-channel command machine.
moedash Oct 2, 2026
9d2f8d0
Merge branch 'moe/AI-198-core-2-machines' into moe/AI-198-core-3-deli…
moedash Oct 3, 2026
700510d
Merge branch 'moe/AI-198-core-2-machines' into moe/AI-198-core-3-deli…
moedash Oct 3, 2026
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
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import "temporal/sdk/core/nexus/nexus.proto";
// 1. init workflow
// 2. patches
// 3. random-seed-updates
// 4. signals/updates
// 4. signals/updates/channel notifications
// 5. all others
// 6. local activity resolutions
// 7. queries
Expand All @@ -41,6 +41,8 @@ import "temporal/sdk/core/nexus/nexus.proto";
// * Patches are expected to apply to the entire activation
// * Signal and update handlers should be invoked before workflow routines are iterated. That is to
// say before the users' main workflow function and anything spawned by it is allowed to continue.
// * Channel notifications are input from outside the workflow, like signals, so they go with
// them and ahead of the stream ranges among the other jobs.
// * Local activities resolutions go after other normal jobs because while *not* replaying, they
// will always take longer than anything else that produces an immediate job (which is
// effectively instant). When *replaying* we need to scan ahead for LA markers so that we can
Expand Down
10 changes: 10 additions & 0 deletions crates/protos/src/protos/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1962,6 +1962,16 @@ pub mod temporal {
}
}

impl From<workflow_commands::UnsubscribeNotificationChannel> for Attributes {
fn from(s: workflow_commands::UnsubscribeNotificationChannel) -> Self {
Self::UnsubscribeNotificationChannelCommandAttributes(
UnsubscribeNotificationChannelCommandAttributes {
channel: s.channel,
},
)
}
}

impl From<workflow_commands::StartTimer> for command::Attributes {
fn from(s: workflow_commands::StartTimer) -> Self {
Self::StartTimerCommandAttributes(StartTimerCommandAttributes {
Expand Down
14 changes: 13 additions & 1 deletion crates/sdk-core/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,19 @@ relevant information.

## Unreleased

### Added
* Workflows can subscribe to server-side streams and append batches of records to them with the
`SubscribeStream` and `AppendStreamRecords` commands. Consumed ranges reach the workflow as
`DeliverStreamRecords` activation jobs, and replay hands each recorded range back in the
activation of the task that consumed it.
* A history fed to a replay worker can carry the stream records its tasks consumed
(`HistoryForReplay::with_stream_slices`), so a language replayer that fetched them from the
stream service can replay a consuming workflow. History alone holds only the offsets.
* A task whose history records a consumed range with content that the response carried no
records for fails before the workflow runs, rather than after it ran on less input. A legacy
query dispatched that way to a worker that no longer holds the run goes unanswered, so the
server retries it on the normal task queue, where the records travel with it.

### Fixed
* Task-poll targets no longer decrease after cancelled or timed-out polls. Affected pollers still
retain their slot during backoff, while resource-exhaustion errors still reduce the target.
Expand Down Expand Up @@ -68,7 +81,6 @@ relevant information.
metrics now carry a `failure_reason` attribute. Each is now split into one time series per
reason, which may affect existing dashboards.
* Workflow task completions larger than the gRPC request size limit are now paginated automatically when the namespace supports it. Paginated workflow task completions require Temporal Server 1.32.0 or later.

### Breaking Changes :boom:
* The following types are now non-exhaustive: `Priority`, `WorkerDeploymentVersion`,
`WorkerCallbacks`, `WorkflowExecutionInfo`, `ActivityCloseTimeouts`,
Expand Down
Loading
Loading