v0.24.0 Release
Schema upgrades (required)
Cassandra: upgrade schema to 0.33
288e935 Persist domainID instead of domainName for childExecutionInfo (#4601)
d9e5003 Handle applyParentClose target domain failover (#4533)
gRPC Support
- Internal traffic is now on gRPC by default
- Cadence canary is now on gRPC
- Cadence worker is now on gRPC
- Cadence CLI supports
--transport
to use gRPC (default is still tchannel) - Added support for TLS
028c444 Update cadence go client to 0.19.0 (#4696)
fd510e1 Export ResponseInfoMiddleware & InboundMetricsMiddleware (#4680)
3865361 Switch system worker to gRPC (#4679)
ff71ae3 Shuffle responses for replication messages (#4652)
ad49ea6 Fix ResponseInfo to work on all transports (#4649)
5ccad58 Use generated proto types from cadence-idl repo (#4630)
8698157 Add inbound header forwarding middleware (#4637)
9237acb Use direct outbound for matching client. (#4622)
04cd354 Use direct outbound for history client (#4619)
8510816 Add TLS support on gRPC (#4606)
2af3246 Handle error case in response info middleware (#4609)
53833a2 Fix and improve canary thrift config and docs (#4580)
a0ccc85 Switch canary to gRPC (#4570)
b21e5e0 Remove dispatcher provider (#4559)
b2037bf Removed frontend client randomisation (#4558)
aa9e7a5 Fix public client default value after xdc switching to gRPC
9ff3eb3 Added cross DC outbound builder (#4552)
7a6b851 Remove unused NewFrontendClient functions (#4553)
f2f859b Move out dispatcher from client factory (#4506)
37a8fd7 Add inbound metrics middleware (#4545)
9db1a61 Added combineOutbounds to combine multiple outbound builders (#4538)
b1e3001 Use common dispatcher for public client outbound #2 (#4537)
d19cae1 Revert "Use common dispatcher for public client outbound (#4523)" (#4534)
a094a33 Use common dispatcher for public client outbound (#4523)
844181f Add size checker when replication messages return (#4521)
9ba3b99 Added response info middleware (#4522)
f3e3897 Move out auth middleware and add test coverage (#4519)
580c448 Introduce rpc.Params (#4517)
e45753a Refactor PeerChooserFactory out of DispatcherProvider (#4508)
a53f4c9 Move dispatcher provider to rpc package (#4507)
0b2107f Moved RPC related types to a dedicated package (#4505)
5846821 Use gRPC outbound by default for internal traffic (#4492)
Membership changes
Pluggable membership information provider with extended host metadata.
d3e03c2 Ringpop: set tchannel port even if label is missing (#4765)
f65fecb Ringpop: filter out unhealthy nodes (#4764)
4dab59a Use named port to select transport for outbound calls (#4749)
9b50717 Provide portmap to ringpop (#4745)
8477b11 Return Hostinfo identity if set (#4739)
acff10c Add correct Address tag (#4736)
29874b6 Lock membership keys after peer provider call (#4733)
7e3d48c Protect membership member keys concurrent access (#4731)
45bc726 Hashring: return Hostinfo struct instead of string (#4708)
7a17a30 Extend Hostinfo with identity and port map (#4706)
770e9ec Replace Ringop with PeerProvider interface (#4653)
3557eb5 Merge membership Monitor and ServiceResolver to membership.Resolver (#4646)
97f1690 Reduce API scope for membership.Monitor (#4644)
7e14102 Move ringpop setup to common/membership (#4638)
c145ab8 Remove Membership Factory (#4627)
e15f181 Support DNS SRV Records within Ringpop (#4614)
9a072ca Provide Channel for Ringpop (#4597)
Cross Cluster operations
Cross cluster domain dependency support for signals, child workflows, cancels and parent close policy (pre feature release).
b7d2c77 Generate parentClosePolicy task for x-cluster child (#4682)
c894177 Improve cross cluster components shutdown logic (#4662)
624a1fc Bug fixes for cross domain operations (#4623)
d3d0682 Add domain to pendingChildExecutionInfo (#4611)
39bebb4 Fix target domain not active error handling for transfer task (#4599)
e2b8e94 Split transfer close execution task (#4583)
0bfd2f7 Schedule first decision for abandoned child if parent closed (#4579)
a9ed73a Add admin respond cross cluster task completed API (#4565)
5879fa3 Misc. fix for cross cluster implementation (#4554)
041061c Wire up cross-cluster operation implementation (#4524)
70cf8be Add metrics for cross cluster implementation (#4527)
898aa91 Improve close execution task for cross cluster situation (#4528)
f74b915 Execution logic for RecordChildCompletion and ApplyParentClosePolicy (#4474)
f2ff1c3 Refactor cross cluster queue implementation (#4493)
52c8acc Limit batch size for fetching cross cluster tasks (#4487)
5ac1940 Fix parent close policy for cross-domain childs (#4486)
bd7072c Implement xcluster source task executor (#4445)
6101ab2 Implement cross-cluster source task (#4398)
c8f3c1c Support ApplyParentClosePolicy Cross Cluster Tasks (#4392)
c8d0838 Set completed workflow current version to lastWriteVersion (#4431)
fb8e782 Add feature flag for scheduling cross-cluster operations (#4424)
Auto-Forwarding
9540236 Update auto-forwarding to work for global domains with 1 cluster (#4681)
3ee1178 Update batcher to support replicating workflows (#4672)
06891aa Add Redirect policy to forward all domain APIs
ParentClosePolicy for child workflows only
c7727c0 Parent close policy should apply to child workflow only (#4612)
ES Analyzer
80700d8 Add long running workflow metrics (#4643)
2fa2787 ElasticSearch Analyzer (#4598)
MongoDB Support
46b84be Implement MongoDB plugin Part1: skeleton and ConfigStore (#4590)
IPv6 Support
0643788 feat: Fixing RPC to allow bindOnIP for IPv6 (#4620)
SQL Support
085a799 Perform schema checks for multiple SQL database and add context to AdminDB DDL interface (#4561)
f182b87 Unify mysql user password for testing (#4589)
75b10a5 Fix mysql insecure hostname verify didn't work (#4569)
f5ce7cb Implement sharded SQL driver to support using multiple SQL databases (#4504)
90e2290 Refactor to add a SQL driver layer for multiple SQL databases support as sharded SQL (#4498)
Auth
334d51f add workflow type to signal with start auth (#4495)
f98bd06 add enable service auth logging key (#4480)
b22df41 extend permission attributes for service auth (#4468)
7aca829 Load OAuth credential on startup instead of request processing (#4442)
4c2bcc7 Fix OAuth sample config and add docker-compose for OAuth testing server
5191468 Adding middleware to inject Auth token for internal requests to frontend (#4364)
Graceful failover
0c3db56 Integrate failover into into describe domain response (#4440)
920077c Adding debug metrics in domain callback (#4484)
6ee5f93 Add getFailoverInfo API (#4408)
Refresh Tasks API
417f150 fixed refresh workflow tasks (#4750)
6123731 add refresh tasks API to client (#4747)
a5c527f Allow generating workflow tasks if workflow is non-current (#4688)
Corrupted workflows
6980508 Add Watchdog Workflow with Corrupt Workflow Fix (#4713)
e13da58 Add fixer workflow triggered by remote (#4482)
1cc94d5 Add a step to scan workflow to be in DLQ (#4471)
Activity dispatch optimization
de0653f add metric tags for activity task disaptch (#4821)
3581be5 remove redundant type conversions for activity task dispatch (#4820)
ac8cbbd add activity dispatch configs to matching (#4818)
532da71 merged activity dispatch config
f5cfeaf add activity dispatch configs (#4816)
c4713d2 updated idl for activity task dispatch (#4815)
b4f38d0 add data contract for activity task dispatch (#4813)
Cadence CLI Changes
b445012 Improved CLI DLQ read command (#4780)
950f5ac Added --format flag to render table, json or custom template (#4777)
c833c98 Use RenderTable for the remaining CLI commands (#4774)
99fcca8 Allow loading service config for all DB operations (#4768)
0557c2b Added presentation layer for rendering workflow list tables (#4773)
9d65899 Allow reading shard list from stdin for CLI DLQ operations (#4771)
5511bd6 Drop unused flags for cli rereplicate command (#4728)
ceacad0 Fix NPE when observing history in CLI (#4714)
9530143 Update CLI client factory to use grpc clients (#4605)
38d1e2a Add exclude query for list and reset-batch command (#4699)
cf21c86 Add skipCurrentCompleted option to reset-batch command (#4698)
41c8923 Update domain describe command to support JSON output (#4674)
c220950 Fix admin db thrift decode tool (#4665)
75a992a Create ElasticSearch client via factory (#4660)
9d40c45 Add admin tool to decode any thrift binary into JOSN (#4634)
a370de0 Cli: notify on SIGINT (#4615)
8c9db18 Expose GetTaskListByDomain in CLI (#4462)
Bug fixes
0c8a0fd Fill domainID for backwards compatibility (#4819)
6981b1d Only update maxReadLevel after successful re-acquire of shard (#4799)
7328473 Fix ScanWorkflowExecutions function in frontend client (#4781)
13f9cf8 Added missing mapper fields for DecisionTaskTimedOutEventAttributes (#4762)
1923121 Fix auto-forwarding for QueryWorkflow API (#4763)
f1a0983 Fix data conversion from serialization.WorkflowExecutionInfo to persistence.InternalWorkflowExecutionInfo (#4758)
0596698 Use setupBackoffTimer with locking (#4748)
b0da1be Fix SQL implementation of DeleteWorkflowExecution (#4746)
19a8526 Update cadence batch command to receive more input (#4725)
edf4cb4 Fix parsing domain_id in child_info_maps for backward compatibility (#4722)
dea6429 Fallback to zero value for initiatedID in exteralWorkflowExecutionFields struct (#4720)
27a0df2 Add decision offset to LastDecisionCompleted reset type (#4700)
e8fdcd9 Fix cassandra plugin nil pointer dereference issue (#4697)
027bbd6 Fix queue diff metric for disabled clusters (#4686)
35ae7e7 Fix canary/bench dev configs (#4675)
27afb62 Fix remote sync match for standby domains and task creation time (#4654)
32123b9 Fix NPE in GCP archival (#4626)
e13b668 Fallback to zero value for non-present parent execution fields (#4617)
0b47683 Fix get replication task read level update issue (#4607)
110a135 Fix NPE when replicating child started event (#4591)
a76d1a5 Set workflow start time in application layer (#4581)
e372561 URL encode postgres credentials (#4550)
384a3a4 Update shard context to reduce DB calls for closed shards (#4547)
a590cac Fix record child completion error handling (#4515)
3eda7b9 Fix timer resurrection check (#4499)
3ef32e2 Fix workflow retry policy overriding workflow timeout (#4467)
3e3bb67 Fix startTime in workflow task refresher (#4488)
7ee5339 Fix nil pointer dereference issue in matching (#4481)
c387b40 Fix workflow refresh for closed workflows (#4472)
723149b Revert ratelimiting behavior for frontend worker related APIs (#4435)
Misc improvements & updates
ea4d165 As-simple-as-possible addition of background-processing ratelimits (#4775)
61c5d58 Purge un-hydrated replication tasks when doing dlq merge (#4769)
e4cb51f Added history corruption checks for workflow signaling (#4761)
6f3da1c Add more docker compose files for multiclusters with ES and different DB (#4757)
d83fa3a Log more tags while putting to replication task to dlq (#4754)
71c2774 Add rate limits for inline archival (#4743)
a192713 Lowers priority of a significantly noisy log entry (#4730)
9abf34d emit task list backlog metric in matching (#4734)
e27ed80 Update error message for too frequent domain updates (#4711)
99ace7a Upgrades python version for cqlsh (#4709)
a0be592 Improve standby task processing (#4695)
d117c3c Update ElasticSearch version to fix log4j issues (#4691)
9c95661 Update Base and Builder Images to Apline 3.15 (#4689)
37a6cfd Emit persistence latency histograms (#4678)
97300ec Add jitter for starting failover queue (#4683)
e0a1d20 Add support for custom cassandra authenticators (#4676)
f300344 Improve error message when a workflow's decision is rejected due to concurrent changes (#4673)
b730353 Support partial retries for ApplyParentPolicy (#4610)
3b36196 Add logs for ID length violation checkers (#4655)
0aa7494 Use streaming implementation of thriftrw encoder/decoder (#4568)
4461fe0 Fix build by swithcing to golang:1.17-alpine3.13 (#4641)
2957a70 Apply ConnectAttributes for postgres (#4639)
e2adab9 Add prometheus metric for canary/bench (#4625)
2e75c15 Update docker image to use 1.17 golang (#4632)
d61a3b3 Update golang/mock to v1.6.0 (#4636)
97a413f Fixing master build (#4631)
2b08e40 Add dynamic config to disable generate replication tasks (#4608)
39b28e6 Add ctx parameter to queue processor actions (#4600)
fa6d71d Limited retry for normal decision scheduleToStart timeout (#4567)
942f032 Change canary back to start both worker and starter by default (#4587)
5affa4f Fx docker template and canary batcher workflow (#4585)
0e4b8d3 Add cross region sample config and minor fix docker template (#4574)
49aa635 skip eror on creating domains for canary (#4584)
93934ab Show more information about panicked objects (#4575)
8e8e943 Fix build on M1 macs (#4576)
bd21dc4 Remove github automerge job (#4577)
87b2eae Support filtering global domains in ElasticSearch (#4539)
f8f95d5 Improve server_test and instructions on homebrew and dynamic config docs (#4557)
2719202 Upgrade yarpc to v1.58.0 (#4564)
11e9a7b Improve archival history mutated error logs and add option to allow archiving incomplete history
e1e94ee Add a hard limit for number of decision retry attempts (#4490)
19a954a Fix docker config template for secondary cluster (#4551)
37e9845 Add console as logging encoding type (#4549)
3cd5166 Log WorkflowID, RunID, domainName when a workflow times out or gets terminated (#4548)
c7e94f2 Upgrade golang/sys for go 1.17 (#4543)
e949687 Add server startup test to prevent docker image master-auto-setup getting broken
3ab4843 Add sample config to run with opensearch (#4512)
7e60482 Add disableSniff: true flag to update-development_es_v7.yaml (#4501)
2679a9c Managed failover workflow improvements (#4491)
607893d Verify delete history branch actually delete targeted nodes (#4494)
3bbf945 fix flaky TestWorkflowRetryPolicyContinueAsNewAsCron integration test (#4496)
ea89af4 Fix access control admin handler initialization (#4500)
c226452 Update get tasklist response (#4483)
9e99272 Emit metrics during shardscanner fix and scan activities (#4476)
ef7d049 Add documentation to canary and improvements (#4447)
df3e552 Fix/docker multicluster (#4473)
39184e6 Add tagged loger to shardscanner (#4466)
a695fc0 Set limit on range queries to prevent bad queries causing degradation (#4458)
a5a7223 Validate shard ID range (#4461)
7357966 Remove previous domain lists from domain cache (#4463)
ed86ca8 Matching per domain RPS limit (#4433)
7ca1886 Misc improvements: development & sample config & README & Issue Template
4969e35 Allow replicate history generated from same cluster (#4429)
7ef52d5 Add feature flag on emitting signal name metric tag (#4434)
482f478 Updated yarpc to v1.56.0 (#4423)
e974a2a Fix auot-build script typo
Cleanup & Refactoring
5ec6c4e Drop getters on HistoryEvent (#4727)
7084679 Staticcheck cleanup (#4751)
eff46e0 Reuse rate limiter functionality (#4742)
1fd8af3 Added AsFloat64 helper to convert rps related dynamic config properties (#4740)
32cf612 Drop redundant pointer conversions (#4726)
b8d47dc Drop pointers on internal history branch types (#4718)
b0dff80 Removed unused parameter (#4719)
a964dfb Do not pass yarpc options in CLI (#4712)
429db90 make fmt (#4658)
307dd93 Fix badly formatted files (#4647)
a3fdf4c Cleanup unused setters in client.Bean (#4555)
13c6a2b Refactor and improve the retry logic to avoid throttling dependencies (#4351)
5428e35 Refactor service naming constants (#4516)
467824e Reshuffle service.Config and resource.Params (#4514)
132768a Move serviceImpl to integration tests (#4513)
8ccb533 Minor ratelimit test cleanup
82d83f9 Refactor task executor tests (#4475)
9393737 Refactor config methods for internal use (#4448)
88549dd Refactor test for internal integration tests (#4437)