v1.18.0
·
326 commits
to master
since this release
🛑 Critical bug. Skip this release and upgrade to v1.18.1 instead.
Highlights
Comprehensive rework of Local Activity Worker implementation
- Local Activities now respect all the timeouts set on
LocalActivityOptions
. - Lower ScheduleToStart latencies for Local Activities and a backpressure that prefers retries over new executions
LocalActivityOptions
gotscheduleToStart
timeout- Bugfix for OpenTelemetry/OpenTracing incorrectly showing exaggerated scheduleToStart latency for Local Activities (#1573)
Spring Boot module
- Spring Boot 3 support
*Options
Customizer beans for fine-grained control over*Options
instances used by Spring Boot- Workers names based configuration to keep Task Queue names contained in the config only
- More wired
WorkflowFactoryOptions
andWorkerOptions
properties - Bugfixes for beans ordering (#1614) and test environment setup (#1622)
New WorkflowClient
methods
WorkflowClient#listExecutions
for fetching and iterating through Workflow Executions based on Visibility QueriesWorkflowClient#fetchHistory
andWorkflowClient#streamHistory
for retrieving Workflow history from the Server to be used in replay or for export.
New WorkflowInfo
metadata available for Workflow code:
WorkflowInfo#getHistoryLength()
WorkflowInfo#getFirstExecutionRunId()
WorkflowInfo#getOriginalExecutionRunId()
Bugfixes
- Query on a stub that was was used for start a workflow now follows chain of runIds (#1612)
- Failures happened in Signal methods are now treated the same way as failures in Workflow methods (#1616)
Migration note
Previously Local Activity Workers didn't respect startToClose
and, in some cases, scheduleToClose
timeouts.
Some users may have LocalActivityOptions
configurations that don't accommodate their actual timings but previously were unenforced.
The enforcement will kick in after an upgrade on v1.18+ and may lead to Local Activity failures that were not happening before.
Users may need to test and adjust their LocalActivityOptions
timeouts before rolling out v1.18+ to production.
Spring Boot: org.springframework.context.ConfigurableApplicationContext.start
lifecycle method needs to be called for workers to auto-start.
What's Changed
- Mass replay API by @Sushisource in #1497
- Add WorkflowInfo#getHistoryLength by @Spikhalskiy in #1498
- Use longer retry interval on RESOURCE_EXHAUSTED by @mjameswh in #1465
- Switch to the latest server in CI/CD by @Spikhalskiy in #1499
- Port a server fix for the last heartbeat time being defaulted to the activity started time by @Spikhalskiy in #1508
- Fix SignalDuringLastWorkflowTaskTest by @Spikhalskiy in #1515
- Revisit Activity Timeouts by @Spikhalskiy in #1514
- Add gatherRuntimeDeps task by @Spikhalskiy in #1517
- Test Environments now respect metricsScope passed in TestEnvironmentOptions and ServiceStubOptions by @Spikhalskiy in #1521
- Add sdk-features ci trigger by @Sushisource in #1520
- The test server now generates a unique taskToken per an activity attempt by @Spikhalskiy in #1524
- More activity timeout failure compliance tests and improvements by @Spikhalskiy in #1525
- Rework Local Activity scheduling by @Spikhalskiy in #1507
- Implement retries of local activities that break local retry threshold by @Spikhalskiy in #1542
- Add generated proto classes info into javadoc jar by @Spikhalskiy in #1534
- Add scheduleToStart timeout to Local Activities by @Spikhalskiy in #1560
- Open WorkflowExecutionHistory as a public class by @Spikhalskiy in #1566
- Fix binary compatibility broken by #1566 by @Spikhalskiy in #1571
- Update C# and Ruby namespace/package for test server protos by @cretz in #1572
- Remove usage of Workflow time from tracing spans by @Spikhalskiy in #1573
- Set heartbeat details for TestActivityEnvironment by @tylercunnion in #1581
- List workflow API by @Spikhalskiy in #1583
- Fail WFT if Local Activity execution experienced an Error by @Spikhalskiy in #1591
- Exposing an ability to fail WorkflowTask for any callback in executor code by @Spikhalskiy in #1589
- Release v1.18.0-RC1 by @Spikhalskiy in #1598
- Rename sdk-features to features by @bergundy in #1599
- Fix grammar mistake and typo by @ManuverGujjar in #1602
- Added ActivityOutput.activityId by @mfateev in #1608
- Add history fetching API by @Spikhalskiy in #1600
- Now query on workflow stub that was was used for start follows runIds by @Spikhalskiy in #1612
- Start Spring Boot workers on the Spring Context Start instead of Refresh by @Spikhalskiy in #1614
- TemporalFailure thrown from Signal method now fails Workflow Execution by @Spikhalskiy in #1616
- Sprint Boot TestWorkflowEnvironment now respects configured MetricsRegistry, Tracer, DataConverter by @Spikhalskiy in #1622
- Add CORS headers to the RDE Server sample implementation by @Spikhalskiy in #1617
- Spring Boot 3 support by @Spikhalskiy in #1620
- Add WorkflowInfo#getFirstExecutionRunId and #getOriginalExecutionRunId by @Spikhalskiy in #1624
- Add auto discovery binding strategy by worker name to Spring Boot by @Spikhalskiy in #1623
- Add TemporalOptionsCustomizer to allow users to modify the options constructed by Spring Boot Auto Configuration by @Spikhalskiy in #1627
- Unregistered Local Activity now fails Workflow Task by @Spikhalskiy in #1628
- Wire some WorkerFactoryOptions and WorkerOptions properties to Spring Boot Configuration by @Spikhalskiy in #1633
New Contributors
- @cretz made their first contribution in #1572
- @bergundy made their first contribution in #1599
- @ManuverGujjar made their first contribution in #1602
Full Changelog: v1.17.0...v1.18.0