- Fix a bug in build.gradle that prevented javadoc and sources from being published
- Add ParentClosePolicy to child workflows and also expose parent execution info for child workflows
- Add context propagation
- Fix various bugs around test workflow service and test mutable state implementation
- Use thrift IDLs from uber/cadence-idl repo as a submodule
- Various dependency updates including Docker base image and Gradle wrapper
- Miscellaneous bug fixes
- Add Upsert Search Attributes
- Support get search attributes inside workflow
- Cleanup threads created in signal method on decider close
- Fixed exception propagation from child workflows
- Add missing metrics and tags
- Add metrics for SCHEDULED_TO_STAR latency
- Support filtering query based on close status
- Documentation improvements
- Fix thread leak on non-deterministic error
- Support Search Attributes on Start workflow
- Make Worker.addWorkflowImplementationFactory method support 'options'
- Add saga class that helps user to implement saga pattern in Cadence
- Add activity tasklist rate limiter option to worker options
- Fix busy loop in local activity poller if there is no task
- Fix an issue in get history timeout
- Lock decider while processing
- Timer firing fix
- Local activities
- Make sure signals are applied in the same order as they appear in history
- Fix retry option without expiration in test env
- Maintain correct runID during reset for random ID generation
- Default retry policy for Cadence service API calls
- Change markers to use headers to serialize internal fields
- Miscellaneous stability and debuggability fixes
- Support Memo in visibility
- Fix getVersion without decision event
- Make NoopScope metric scope really a no-op operation
- Add some more fields in activity info
- Wire workflow id reuse policy in start workflow execution params
- Add missing metrics tags for activity and decision task processing
- Multiple fixes to get build and unit-tests passing when building cadence-java-client from Windows.
- Allow data converter to handle non-serializable throwables in the cause chain
- Update default long poll timeout to 2min to match server side config
- Fix deadlock in sticky decider cache eviction
- Fix cron schedule merge issue in child workflow option
- Fixed InternalServiceError Error message on continue_as_new
- Correctly calculate workflow e2e latency
- Exposing CancellationScope.run method
- Add TBase and TEnum type adapter for JsonDataConverter
- Cron child workflow
- Added support for SignalWithStart Service API
- Expose methods in TChannel service to allow user to add headers in Thrift request
- Added cron schedule support.
- Fix infinite retryer in activity and workflow worker due to non-retryable error.
- Fixed hanging on testEnv.close when testEnv was not started.
- Fix for NPE when method has base type return type like int.
- Fixed JsonDataConverter to correctly report non serializable exceptions.
- Added support for workflow and activity server side retries.
- Clean worker shutdown. Replaced Worker shutdown(Duration) with Worker shutdown, shutdownNow and awaitTermination.
- Fixed thread exhaustion with a large number of parallel async activities.
- Added RPC headers needed to enable sticky queries. Before this change queries did not used cached workflows.
- Requires minimum server release v0.4.0
- Introduced WorkerFactory and FactoryOptions
- Added sticky workflow execution, which is caching of a workflow object between decisions. It is enabled by default, to disable use FactoryOptions.disableStickyExecution property.
- Updated Thrift to expose new types of service exceptions: ServiceBusyError, DomainNotActiveError, LimitExceededError
- Added metric for corrupted signal as well as metrics related to caching and evictions.
- POJO workflow, child workflow, activity execution.
- Sync and Async workflow execution.
- Query and Signal workflow execution.
- Test framework.
- Metrics and Logging support in client.
- Side effects, mutable side effects, random uuid and workflow getVersion support.
- Activity heartbeat throttling.
- Deterministic retry of failed operation.