Releases: uber/cadence
v0.22.2 Patch Release
This patch release introduces a dynamic config option worker.AllowArchivingIncompleteHistory
. If you enable this to true
, archival will archive the history even on "history mutated" error.
Schema/configuration change
None.
Release commits
Bug fix
None
Improvement
ff344e6 - Improve archival history mutated error logs and add option to allow archiving incomplete history (#4541)
v0.22.1 Patch Release
v0.22.0 Minor Release
Upgrade instructions
Schema upgrades required if applicable
- Cassandra: upgrade schema to 0.31
- MySQL: upgrade schema to 0.5
- Postgres: upgrade schema to 0.4
- ElasticSearch: Add new system search attribute
IsCron
of boolean type. This is supported by Cadence to indicate if a workflow is a cron workflow
Configuration changes(optional but recommended)
- Change
persistence.datastores.<name>.cassandra
topersistence.datastores.<name>.nosql
withpluginName:cassandra
- Set
clusterMeatadata.enableGlobalDomain
to true to enable global domain by default
See example configuration - DB based visibility is no longer required if you have ES based visibility. You can safely remove it if so.
Schema
5848c94 Support Cross Cluster Operations in SQL type DBs (#4271)
6f77ae2 Cassandra implementation for cross cluster queue (#4237)
53edb8d Support is_cron field for SQL/Cassandra/Postgres (#4191)
fc63ab1 Support Listing Scheduled Cron Workflows (#4176)
Features
Feature Flags
0f93d57 Support Feature Flags (#4257)
Cross Cluster Task
54d6ccb Improve is cross cluster task check (#4326)
ddfc127 Convert transfer to cross cluster task if target domain is active in remote cluster (#4268)
ae40d3e Thrift and Proto definition for fetching and responding cross-cluster tasks (#4276)
6e3a78d Add cross cluster task interface (#4264)
42caee5 Generate cross cluster tasks in mutable state task generator (#4250)
3eda53b Update shardContext for getting and updating cross-cluster queue states (#4246)
bda4c5c Add cross-cluster task related types and methods to data/persistence interface (#4225)
d5fbc5e Add cross cluster processing queue state to data/persistence interface (#4230)
CLI
263227f Update admin rereplicate command to support SQL databases (#4227)
758ace2 Update Admin CLI workflow operations to support SQL databases (#4222)
3866711 Add Admin Shard List Command (#4224)
e3e0c26 Update Admin CLI shard operations to support SQL databases (#4207)
cade91a Update admin DB commands to support SQL databases (#4198)
Documentation
9b4aaa6 Add design doc for workflow shadowing (#4137)
Bug Fix
ad0261d Fix ndc reset workflow replication bug (#4376)
45d5eca Fix deadlock in transfer queue (#4337)
83feeff Fix missing activity failure details in standby cluster (#4323)
407c366 Support prefix match for list domain command (#4275)
8143d55 Fix proto FromParentExecutionInfoFields mapper (#4262)
23fbb4f Fix styles and instructions in docs (#4260)
7af95b7 Fix Cassandra schema version check (#4247)
b660112 Fix persistence test for task completion (#4245)
e2cde4a Domain queue ack level fix (#4218)
2fb5c02 Pick signal requestID dedup fix from temporal (#4210)
61399e5 Fix update domain replication ack level (#4212)
3e2ffc3 Fix docker-compose bug: publicClient is not valid and error
Improvements
362de93 Parallelize GetWorkflowExecution SQL calls (#4339)
1c62c21 Server and CLI use version from release and versionChecking constant and commit revision (#4308)
c75cbf8 Update Mutable State to reduce unnecessary update to DB (#4304)
b7043ed Enforce context timeout for retry policies in execution context and cache (#4303)
dad87f7 Add domain tag for skip task metrics and logs (#4293)
4305fc0 Allow skipping optional tests for optional methods in plugins (#4287)
b25da7e Use global domain by default
1cd5fd2 Remove unnecessary nonzero requirements in some fields of NoSQL config struct
c4f2c09 Adding protoversion in config file (#4263)
12ddac4 Remove IsConditionalFailed from NoSQL
ffe4e2f Refactoring Cassandra workflow persistence manager for NoSQL support : Part 1
e4a5917 Task fetcher implementation (#4272)
99fb216 Rename persistence files for consistency (#4256)
ff5e37a Add common Future util implementation (#4266)
e528ef3 Remove timerGate usage in transfer queue processor (#4248)
e8cc575 Add version check for JavaConsistentQuery
2b68481 Preserve some time to return part of the result if the context is timing out (#4265)
7e6fbdb Adding protoversion as a config value (#4252)
ea912b0 Update generating close event to use event version (#4261)
0b058c0 Rename MetadataManager to DomainManager
208edf4 Refactor: not require db visibility when ES visibility is provided (#4241)
723ecf5 Refactoring Cassandra task persistence manager for NoSQL support
532dfb1 Add placeholder for dynamo visibilityCRUD methods (#4244)
8d3e54e Remove transfer/timer failover queue level from persistence layer (#4232)
2c76237 Refactoring Cassandra visibility persistence manager for NoSQL support
e1fb9d7 Add logic in replication stack to handle different shard number (#4239)
de3a6ac Raise VisibilityListMaxQPS limit for local docker-compose env
84059fb Change domain data CLI parameter for consistency (#4240)
932303f Add conn_attrs flag to admin db commands (#4226)
ae963c1 Remove unused ResetWorkflowExecution method from persistence (#4236)
58df913 Regenerate proto types (#4234)
466c7f5 CLI: Differentiate local and global in describe domain
640d378 Add skeleton of other nosql plugin and add dynamodb package
a49e2da Refactoring Cassandra shard persistence manager for NoSQL support
749c80d Minor improvements on NoSQL interfaces and implementation (#4219)
758123f Remove unused now parameter from task generator interface (#4217)
2843e42 Shift pointer conversions down to thrift encoder (#4206)
7e333a8 Wire up rebalance CLI (#4213)
1f14ebf Add rebalance workflow (#4199)
68dc1ed Add more comments about how to implement the interfaces in NoSQL
7f49a0f Introduce Options for task list scavenger (#4205)
d90f87a Refactor: move errorChecker to nosqlplugin pkg
d15fbe5 Tidy go mod (#4193)
b2adb71 Update Master cluster to Primary cluster (#4185)
1d9144d Not allow more than one types of metric reporters (#4180)
95713db Support managed failover workflow with drill mode (#4177)
5a9a1ef Expose max message size config for gRPC (#4166)
b6b70ff Detect when IDL submodule is not initialized, warn user (#4172)
386e1e7 Expand workflowCompleted error to other APIs (#4163)
800107a Add debug info when List API is hititng ratelimiting/sampling
ac856a6 Add Signal Name to Signal Metrics (#4161)
7457be7 Elasticsearch TLS support (#4154)
36f7388 Assign CLI version on CLI commands (#4153)
Misc.
ec3596a Update docker for 0.22.0 patch release
Credits
Thank you @spmistry for the contribution!
v0.21.3 Release
Features
05fb808 Support delaying cron workflows (#4196)
875b690 Update admin db commands to support all registered SQL dbs (#4189)
Bug Fix & Improvements
0cc2fe3 Rollback workflow already completed error (#4209)
5ad53e3 Fix domain last updated time in updateDomain Operation (#4211)
fce6eaa Check identity length before RespondDecisionTaskCompleted to history (#4215)
49bc2c0 Add dynamic configs and metrics to control/monitor per id lengths (#4173)
d55f707 Fix describeWorkflowExecution in passive cluster (#4203)
94a0991 Use frontend client in parentClosePolicy workflow to allow auto-forwarding (#4202)
50db73e Add nextEventID for frontend PollForDecisionTask response (#4190)
d893a9c Fix sql error conversion (#4194)
54d2653 Improve error handling for SQL persistence implementation (#4178)
40fb112 Fix proto mapper for Payload (#4184)
cd40ea3 Handle workflow not exist error when archiving history (#4181)
Misc.
36cfde8 Update docker for 0.21.3 patch release
73a2ceb Go mod tidy
v0.21.0 Release
Added feature and optional config change
- Added GRPC support. Cadence server will accept requests on both TChannel and GRPC. With dynamic config flag
system.enableGRPCOutbound
it will also switch to GRPC communication internally between server components.
Please configure gRPC ports to all four services following the example
Shadower Workflow Feature
- 08128b1 - Workflow shadower bug fix and improvements (#4117)
- 28fd61d - Shadower workflow implementation (#4042)
Bug fixes
- b29845a - Fixing typos in README.md and comments File (#4142)
- 429cb11 - Bug fix: Declare CloseStatus and HistoryStatus as integers for development dynamicconfig (#4125)
- 07d5371 - Fix don't swallow the error when building zap logger (#4102)
- d2c25ac - Fix docker build with empty idls
- 22f5e06 - Fix missing domain field when creating activity scheduled event (#4087)
- f3eaa11 - Fix emit 0 count if encounters error (#4073)
- d5cc770 - Fix domain registration error handling in cassandra (#4066)
- b78809c - Fix time convertion to nanos (#4063)
- 480cf5e - Fix Dockerfile (#4083)
Tests
- 24cefa6 - Fix race condition in task re-dispatcher test (#4147)
- fa282dc - Fix flaky Cron integration test
- f50a0fe - Fix flaky test (#4116)
- af535dc - Fix regression introduced by integration test refactoring (#4109)
- d3d4561 - Fix lint error in integration tests (#4100)
- 8fdedfb - Seperate integration test suite definition from actual integration tests (#4098)
- 487653f - Add larger test timeout for large test (#3894)
- 5a10dc4 - Fix flacky integration tests (#4094)
- dfc42d3 - Refactor integration tests (#4091)
- 471f99b - Fix flaky integration test (#4092)
- e1ad09b - Fix CLI unit tests (#4090)
- d070b9d - Revert "Drop pointer on ActivityTaskScheduledEventAttributes.Domain (#4009)" (#4082)
CLI
- cf253f0 - Use go client version v0.17.0 (#4164)
- 06149bd - Bump cli version to 0.18.4 (#4150)
- 45ef498 - Update readme for CLI homebrew (#4135)
- 7bd9105 - Support CLI Delay Start (#4097)
- 00fafac - Update CLI usage for IDReusePolicy: TerminteIfRunning
GRPC
- bc11811 - Replace gRPC port when resolving host address (#4174)
- 04f16e7 - Set grpc ports in docker config template (#4146)
- d0a8f7e - Created GRPC handlers and internal clients (#4057)
- d6c50f5 - YARPC error mapping (#4070)
- 329357c - Remove
omitempty
for fields used in PersistenceInfo (#4151) - 30702c2 - Moved out public proto IDLs to cadence-idls repository (#4152)
- 69d7429 - Add PersistenceInfo to DescribeCluster proto message (#4148)
- 21b21cd - Add PersistenceInfo to DescribeCluster thrift response (#4149)
- 6c06e56 - Add persistence info to DescribeCluster API call (#4136)
Others
- 430eb74 - Allow updating ElasticSearch only when adding new search attributes
- 4a71b12 - Update SQL task manager to support sharded SQL DB (#4171)
- fd38229 - Update workflow execution metrics (#4159)
- 62a7745 - Add Documentation for dynamicconfig: value type and allowed filters
- 12579bd - Support workflow already completed error (#4123)
- 37b8ea4 - Config layout refactor: centralize config file for documentation
- aac9dba - Bump supported client feature version (#4145)
- 7057e5e - Improve shadow workflow (#4144)
- a86abb4 - Replace statsd with prometheus as default in docker-compose
- d53e631 - Wrap shadow workflow config inside SideEffect (#4140)
- 8d3519b - Update domain deprecation command to fail if workflow exists (#4126)
- 6fea8dd - Add print json flag to list domains command (#4134)
- 6ca6e0e - Refactor dynamicconfig comments for documentation
- d07d980 - Remove active domain check in shadow workflow (#4133)
- acd2596 - Update domain registration to check required data field (#4132)
- 1fd6a57 - Revert changing HistoryLength and CloseStatus to string (#4130)
- 801fda7 - Improve tasklist and implement history scavenger for SQL (#4059)
- b031307 - Refactor config: move config and dynamiconfig one level up (#4118)
- 7fa8f08 - Allow setting levelKey for logging level (#4120)
- bd6c19c - Improvements for show history from archival
- 3a1e1bc - Expose server version tag to be set during build time
- 042923f - Add proto changes for delay start field (#4104)
- 93a3e94 - Forward reset request to the active cluster (#4114)
- 0bc3681 - Add more options to config_template for docker image (#4084)
- 2a7b75d - Add version to Kafka config (#4072)
- caf8fbd - WorkflowExecutionCloseStatus proto mapping (#4080)
- 1f27aae - Return plain yarpcerrors.Status with no internal error match (#4081)
- 84c938a - Treat persistence timeout as transient error (#4088)
- bd5859b - Improve DLQ merge and purge command (#4075)
- e286ca0 - Add domain queries to scanner and fixer, and skip terminated scans (#4079)
- 7661a45 - Update bug report and PR templates
- 560b268 - Release current workflow lock on create as zombie (#4085)
- ec3d1b5 - Add a domain cluster filter during replication (#4069)
- 049196e - Regenerate files with thriftrw v1.25.0 (#4074)
- dca153d - Use gogofast to register types using gogo registry (#4071)
v0.20.0 Release
New Features & Improvements
GRPC
5ffd942 - Drop pointer for event id/version fields (#3948)
663f74c - Drop pointer for signal name fields (#3966)
7af92be - Drop pointer fields on remaining domain fields (#3972)
fba536b - Drop pointer on marker name fields (#3971)
67ae537 - Drop pointer for security token fields (#3970)
baf151a - Drop pointer for task id fields (#3969)
523edce - Drop pointer on visibility query fields (#3968)
3c03ea2 - Revert changes to use string casting for shard ID (#3991)
b877308 - Drop pointer for shard id fields (#3996)
0035139 - Drop pointer for DomainTaskAttributes fields (#4003)
c6d962e - Drop pointer on cause/reason fields (#4002)
cf67a20 - Drop pointer on BadBinary fields (#4001)
cf5c9cc - Optional fields in proto IDL requests (#3989)
4cd869c - Drop pointer on ActivityTaskScheduledEventAttributes.Domain (#4009)
da876df - Add oneof for DescribeHistoryHostRequest in proto IDLs (#3988)
24509c2 - Move non-public proto errors to internal api (#4011)
0921bf5 - Add missing fields/messages to proto IDLs (#4017)
0e34047 - Drop pointer on remaining fields (#4008)
c5d67e3 - Use common ParentExecutionInfo in proto IDLs (#3997)
f2f10d4 - Proto mappers (#3902)
a8a94a2 - Revert "Drop pointer on ActivityTaskScheduledEventAttributes.Domain (#4009)" (#4082)
Bench test
117d6c1 - Open source bench tests (Part 1) (#3990)
1106daa - Open source bench test (Part 2) (#3998)
b5ce314 - Open source bench test (Part 3) (#4005)
174ca09 - Bench test README (#4012)
Task processing
528c714 - Deprecate old task processing logic (#3938)
Replication
aa93e22 - Create non-transient decision when current version updates (#3960)
6c8d048 - Release current workflow lock on create as zombie (#4085)
CLI Improvements
8852cfb - cli v0.18.3 (#3959)
8aba053 - Fix dryrun option for SQL/Cassandra schema update command
Domain deprecation
586704e - Implement domain deprecate CLI command (#4030)
0c46f3d - Update DeprecateDomain handler to handle global domain deprecation (#4029)
1e8b738 - Update list domain CLI command to list deprecated domains (#4039)
b399bd5 - Disable starting new workflows in deprecated domain (#4038)
Workflow shadower
a278995 - Update IDL for workflow shadower (#4035)
Bug Fixes
7882518 - Provide background context to all scanners (#3965)
Misc.
540ea2c - Add missing -race arg on a couple test targets (#3957)
ce50c56 - bumping default QPS since frontend is making double calls to workflow list. (#3958)
3ea200e - Attempt to make some racy tests more reliable (#3961)
8cf308d - Flatten UpdateDomainRequest (#3954)
c244e9d - Fix xdc failover integration test (#3967)
d39d428 - Fix IP address in docker template (#3983)
59a98cf - Kafka TLS: allow CA(RootCAs) or cert/key(certificate chains) only
c5334af - Use a test-logger in tests rather than stdout (#3976)
4b548e2 - Update cadence client (#3995)
2f822ee - Rename metric name SignalInfo to SignalInfoSize (#3993)
0a6ed6e - Allow configuring MaxWorkflowRetentionInDays (#3982)
456286a - Fix some racy reads in tests (#3975)
aecaa88 - Pretty-simple "find dependency updates" helper (#4000)
c9f200a - pick child workflow id check (#3994)
e43f52a - Move tcheck to go.mod, get rid of glide dependency (#3999)
99430f5 - update goveralls (#4004)
addbdd4 - Default to non-verbose make test
output (#4010)
dfde9ba - Decouple decision handler and history engine impl logic (#3973)
9422371 - feature/changelog (#4014)
80b7bfc - Move workflow utility components to separate package (#4015)
ef9a418 - Add more default Prometheus histogram buckets for non-latency timer metrics like history_size
4ed0171 - Add helper methods for sql plugin registeration (#4024)
6b048ce - Move decision related components to a separate package (#4021)
c0f1252 - fixed the poller count metric (#4020)
0c9a74d - Add support for ScyllaDB (#4022)
7bbf6dd - Log info message when outstanding poller is canceled (#4031)
aae8fb9 - Add compose file for multi-cluster setup (#4032)
150911c - Increase poller history LRU cache size (#4033)
996cd8a - Cadence client downgrade to v0.15.0
bfcb03f - Move visibility manater setup out of persistence base test (#4062)
a3708fb - Fix missing root dir prefix when loading dynamic config (#4056)
ed82bb7 - Refresh gocql session on no connection error (#4058)
86e6c7c - Enforce context timeout in matching AddTask (#4048)
2458bdb - Minor updates: improve README and add comment for dynamic configuration (#4053)
f722cc0 - Emit task list lag metric in matching (#4051)
6a80bf1 - Add the service name to the log entry (#4044)
764500a - Switch to gogo and yarpc compilers (#4040)
1de8cd4 - Fix prometheus metric error for dual emitting (#4047)
e737862 - Fix the metric ActiveClusterGauge should be as common metric (#4043)
378111f - Context metrics tags to pass transport tag (#4037)
d7efde4 - Fix warnings when compiling the source code (#4036)
1b3436c - Rewrite makefile to be reliable (#4034)
175850a - Update docker for 0.20.0 release
3a7f18a - Fix lint error in integration tests (#4100)
9b62895 - Seperate integration test suite definition from actual integration tests (#4098)
f828ab9 - Treat persistence timeout as transient error (#4088)
98ff0e5 - Refactor integration tests (#4091)
472f757 - Fix Dockerfile (#4083)
03cdc86 - Regenerate files with thriftrw v1.25.0 (#4074)
22ee3c0 - Fix missing domain field when creating activity scheduled event (#4087)
v0.19.2 Release
v0.19.1 Release
Notes
- There is no v0.19.0 release, and please do not use that tag. It's assigned to a commit that is not ready for release.
New Features & Improvements
GRPC
f60488a Cleanup internal types and remove generator (#3950)
2062895 Drop pointers for bool fields (#3956)
048d40e Drop pointer for activity id fields (#3949)
bbfd674 Drop pointer for retry policy fields (#3951)
b22be7c Drop pointer on binary checksum fields (#3943)
ece6cac Drop pointer for attempt fields (#3937)
a9e9451 Drop pointer for forwarded from fields (#3942)
d5a4cbf Drop pointer for poller id fields (#3941)
b846ad1 Drop pointer for cron schedule fields (#3936)
4f45930 Drop pointer for page size fields (#3935)
5733f4f Drop pointer for timerid fields (#3931)
e3d0943 Drop pointer on request id fields (#3928)
79b8acf Drop pointer for cluster name fields (#3927)
6fa4cb5 Drop pointer for task list name (#3926)
d11708d Drop pointer for activity type name (#3925)
ea7b478 Drop pointer for workflow type name (#3924)
47cad83 Drop pointer for identity fields (#3930)
b32559a Drop pointer for worflow / run id fields (#3917)
2847890 Drop pointers for domain name/id fields (#3916)
eb9fe6b Proto domain api improvements (#3907)
ac90530 Switch to protoc-gen-go (#3905)
6f67616 Initial protobuf types and API (#3863)
Task Processing
2c47b8e Enable multicursor queue processing logic by default (#3933)
d6d0a0a Add task processing workflow busy metric (#3892)
Replication
f40bb06 Create non-transient decision when current version updates (#3960)
68c9cdf Handle data corruption error in replication (#3895)
a04ba16 Add replication error logging and metrics (#3891)
Scanner
2f6bede Start enabled shardscanner fixers (#3906)
ElasticSearch
dcd6d3f bumping default QPS since frontend is making double calls to workflow list. (#3958)
c7d2f10 Support AWS signing for ElasticSearch client
SQL
2c8cff0 Add helper methods for sql plugin registeration (#4024)
fe4b48d Fix scan unsupported workflow in SQl DB (#3909)
eb460e1 Simplify templateGetLastMessageIDQuery sql query (#3890)
Others
3ec317a fixed the poller count metric (#4020)
5498f3c Revert changes to use string casting for shard ID (#3991)
e895640 Emit number of task list managers started (#3929)
9d82ce9 Update test to suppourt multiple database concurrent updates (#3939)
7cbd5dc Add more options to config_template for docker image and disable archival by default
8db55b5 Mutable state inconsistency logs and metrics (#3921)
0ca1028 Simplify tags (#3923)
883848e add server side metrics for activity & decision poller counts for task lists (#3918)
8b49962 Use GetDomainName instead of GetDomainByID for retrieving domain names (#3899)
f51a426 Fix workflow reset command (#3904)
Misc.
cf99c5b Update docker for 0.19.1 release
8f87529 Check in generated proto code
6bb5ada Move tcheck to go.mod, get rid of glide dependency (#3999)
fbbdbb8 Repair 0.19.x branch (#3978)
253017d cli v0.18.3 (#3959)
449d38a removed proto from tools
b688c26 remove proto dependency
79d0c8e Improve docker-compose local unit-test, minor cleanup (#3955)
03664be Document disabled lints, especially unhandled-error
db2a0e5 Add easily-enabled lints
fedcdaf Add recover() lints
beb64a7 Add string-of-int lint, basically go vet 1.15
c929c39 Ignore comment-formatting lints
8eb1636 Switch from golint to revive
6b5c103 CLI v0.18.2 (#3944)
88e1b65 Fix docker-push.sh execution (#3919)
710cd61 Remove duplicate docs (#3912)
64add8f Version goveralls, remove unused go bins from docker setup (#3913)
49553cb Makefile cleanup / codegen revamp / gobin removed (#3903)
b381521 CLI 0.18.1 patch release (#3908)
5009940 Add a "help" target to the makefile (#3898)
04db1c0 CLI 0.18.0 release (#3896)
v0.18.2 Release
v0.18.1 Release
Bug Fix & Improvements
b6dfe37 - Move tcheck to go.mod, get rid of glide dependency (#3999)
7882518 - Provide background context to all scanners (#3965)
f30083a - cli v0.18.3 (#3959) (4 weeks ago)
6bdf90a - CLI v0.18.2 (#3944) (4 weeks ago)
c5643e7 - Update test to suppourt multiple database concurrent updates (#3939)