Highlights
Workflow Behavior Fixes Enabled by Default
SDKFlagBlockedSelectorSignalReceive and SDKFlagWorkflowNewChannelLostMessages are now enabled by default for new workflow executions. These flags previously gated fixes for selector/signal receive behavior and workflow channel message handling.
Client Transport Compression
gRPC gzip compression is now enabled by default for Temporal client connections, reducing wire size for requests and allowing gzip-compressed responses. Applications that need the previous behavior can disable request compression with client.GrpcCompressionNone.
Workflow Streams Contrib Package
A new experimental contrib/workflowstreams package provides a durable publish/subscribe log hosted inside a Temporal workflow. It supports publishing messages to named topics, long-polling subscription updates, continue-as-new survival, batching, deduplication, truncation, paging, and interoperability with the Python and TypeScript workflow streams packages.
Breaking Changes
💥 Filter nil values from SearchAttributes for Workflow start, Signal with start, and continue as new
Workflow start, signal-with-start, and continue-as-new request construction now omits unset Search Attributes encoded as binary/null. This prevents removed Search Attributes from being carried into new runs, including continue-as-new.
Poller Autoscaling refactored
Workers using poller autoscaling now create poll goroutines dynamically per poll RPC instead of starting the maximum number of pollers up front, matching all core based SDKs. 💥 As part of this refactor, the PollerStartCounter metric is no longer emitted for autoscaling pollers.
What's Changed
- Generic Temporal Nexus Operation Handler by @Quinn-With-Two-Ns in #2334
- GHA Summary with failures by @yuandrew in #2376
- Enable SDKFlagBlockedSelectorSignalReceive and SDKFlagWorkflowNewChannelLostMessages by default by @yuandrew in #2331
- 💥 filter nil values from
SearchAttributesfor workflow start and continue-as-new by @eamsden in #2274 - contrib/envconfig: add Authority field to ClientConfigProfile by @brucearctor in #2374
- Support Standalone Activity start delay by @maciejdudko in #2382
- Add comments to StopChannels for clarity by @yuandrew in #2355
- Add CHANGELOG and document the update process by @cconstable in #2387
- Refactor poller autoscaling by @yuandrew in #2389
- Add nexus headers to SANO interceptor by @Quinn-With-Two-Ns in #2395
- Add gzip compression on by default by @Sushisource in #2390
- Add workflowstreams contrib package by @brianstrauch in #2386
- Add backoff start interval for CAN by @Sushisource in #2398
- Add some missing comments for struct methods by @yuandrew in #2399
- Add missing documentation for exposed structs in internal package by @brucearctor in #2232
- Document worker activity rate limit timeout caveat by @kritibehl in #2367
- Implement nexus-delivered activity cancels by @Sushisource in #2394
- Expose raw Failure and Payload protos on SDK error and result types by @brucearctor in #2231
New Contributors
- @eamsden made their first contribution in #2274
- @brianstrauch made their first contribution in #2386
Full Changelog: v1.44.1...v1.45.0