Cadence is a distributed, scalable, durable, and highly available orchestration engine to execute asynchronous long-running business logic in a scalable and resilient way.

Overview

Cadence

Build Status Coverage Status Slack Status

Visit cadenceworkflow.io to learn about Cadence.

This repo contains the source code of the Cadence server. To implement workflows, activities and worker use Go client or Java client.

See Maxim's talk at [email protected] Conference for an architectural overview of Cadence.

Getting Started

Start the cadence-server locally

We highly recommend that you use Cadence service docker to run the service.

Run the Samples

Try out the sample recipes for Go or Java to get started.

Client SDKs

Java and Golang clients are developed by Cadence team:

Other clients are developed by community:

Use CLI Tools

Use Cadence command-line tool to perform various tasks on Cadence server cluster

For manual setup or upgrading server schema --

  • If server runs with Cassandra, Use Cadence Cassandra tool to perform various tasks on database schema of Cassandra persistence
  • If server runs with SQL database, Use Cadence SQL tool to perform various tasks on database schema of SQL based persistence

TIPS: Run make tools to build all tools mentioned above.

NOTE: See CONTRIBUTING for prerequisite of make command.

Use Cadence Web

Try out Cadence Web UI to view your workflows on Cadence. (This is already available at localhost:8088 if you run Cadence with docker compose)

Documentation

Visit cadenceworkflow.io for documentation.

Join us in Cadence Docs project. Raise an Issue or Pull Request there.

Getting Help

Contributing

We'd love your help in making Cadence great. Please review our contribution guide.

If you'd like to propose a new feature, first join the Slack channel to start a discussion and check if there are existing design discussions. Also peruse our design docs in case a feature has been designed but not yet implemented. Once you're sure the proposal is not covered elsewhere, please follow our proposal instructions.

License

MIT License, please see LICENSE for details.

Issues
  • upgrade go version in Buildkite to match the Dockerfile

    upgrade go version in Buildkite to match the Dockerfile

    What changed?

    • go version for buildkite docker
    • go mod tidy

    For some packages, it requires newer go version.

    How did you test it?

    Potential risks

    Release notes

    Documentation Changes

    opened by shijiesheng 0
  • Capture CassandraLWT error and log/bump metrics for it.

    Capture CassandraLWT error and log/bump metrics for it.

    What changed? Capturing a specific error from Cassandra by error code and substring, then publishing metrics & logging when we find it.

    Why?

    How did you test it? Hasn't been tested yet - looking for feedback on how to unit test this that would provide value, or we can test in staging.

    Potential risks

    Release notes

    Documentation Changes

    opened by ZackLK 0
  • add mockery to go generate

    add mockery to go generate

    What changed? add mockery to Makefile

    Why? avoid manual update. Currently there is a lot usage of mockery (~20 files) along with mockgen, so it's best to adopt the usage of it rather than removing it.

    How did you test it?

    Potential risks

    Release notes

    Documentation Changes

    opened by shijiesheng 1
  • Add JitterDelay option when creating workflows.

    Add JitterDelay option when creating workflows.

    What changed? Added a JitterStart parameter for the customer to specify a # of seconds to jitter the start of their workflow.

    Why? When customers create a large # of workflows and specify they should all start at the same time, it can cause a thundering herd problem. This parameter allows the start time to be jittered so that the large # of workflows can be started at slightly different times.

    How did you test it? Unit test and tested manually via CLI: ./cadence --domain samples-domain workflow start --tl helloWorldGroup --wt main.helloWorldWorkflow --et 30 --input '"Jittered"' --jitter_start_seconds 5

    Potential risks

    Release notes

    Documentation Changes

    opened by ZackLK 0
  • Removed replication mocks

    Removed replication mocks

    What changed? Removed all replication mocks.

    Why? They are either not used at all or used internally in a couple of places. For them we can use light-weigh fakes instead and have less code.

    How did you test it? Existing tests should pass.

    Potential risks

    Release notes

    Documentation Changes

    opened by vytautas-karpavicius 2
Releases(v0.24.0)
  • v0.24.0(May 24, 2022)

    Schema upgrades (required)

    Cassandra: upgrade schema to 0.33

    288e935d6 Persist domainID instead of domainName for childExecutionInfo (#4601) d9e5003c3 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

    028c44464 Update cadence go client to 0.19.0 (#4696) fd510e170 Export ResponseInfoMiddleware & InboundMetricsMiddleware (#4680) 386536176 Switch system worker to gRPC (#4679) ff71ae356 Shuffle responses for replication messages (#4652) ad49ea6db Fix ResponseInfo to work on all transports (#4649) 5ccad581e Use generated proto types from cadence-idl repo (#4630) 86981576d Add inbound header forwarding middleware (#4637) 9237acb18 Use direct outbound for matching client. (#4622) 04cd354f8 Use direct outbound for history client (#4619) 851081651 Add TLS support on gRPC (#4606) 2af324659 Handle error case in response info middleware (#4609) 53833a21a Fix and improve canary thrift config and docs (#4580) a0ccc85fc Switch canary to gRPC (#4570) b21e5e015 Remove dispatcher provider (#4559) b2037bfc4 Removed frontend client randomisation (#4558) aa9e7a5ce Fix public client default value after xdc switching to gRPC 9ff3eb35f Added cross DC outbound builder (#4552) 7a6b851a2 Remove unused NewFrontendClient functions (#4553) f2f859bcc Move out dispatcher from client factory (#4506) 37a8fd767 Add inbound metrics middleware (#4545) 9db1a61cd Added combineOutbounds to combine multiple outbound builders (#4538) b1e3001f7 Use common dispatcher for public client outbound #2 (#4537) d19cae112 Revert "Use common dispatcher for public client outbound (#4523)" (#4534) a094a330b Use common dispatcher for public client outbound (#4523) 844181fb2 Add size checker when replication messages return (#4521) 9ba3b991b Added response info middleware (#4522) f3e389769 Move out auth middleware and add test coverage (#4519) 580c448dc Introduce rpc.Params (#4517) e45753acc Refactor PeerChooserFactory out of DispatcherProvider (#4508) a53f4c957 Move dispatcher provider to rpc package (#4507) 0b2107fdc Moved RPC related types to a dedicated package (#4505) 5846821cb Use gRPC outbound by default for internal traffic (#4492)

    Membership changes

    Pluggable membership information provider with extended host metadata.

    d3e03c240 Ringpop: set tchannel port even if label is missing (#4765) f65fecb91 Ringpop: filter out unhealthy nodes (#4764) 4dab59a9f Use named port to select transport for outbound calls (#4749) 9b5071757 Provide portmap to ringpop (#4745) 8477b11ef Return Hostinfo identity if set (#4739) acff10cf6 Add correct Address tag (#4736) 29874b61f Lock membership keys after peer provider call (#4733) 7e3d48ccf Protect membership member keys concurrent access (#4731) 45bc726dc Hashring: return Hostinfo struct instead of string (#4708) 7a17a3032 Extend Hostinfo with identity and port map (#4706) 770e9ec4d Replace Ringop with PeerProvider interface (#4653) 3557eb5dd Merge membership Monitor and ServiceResolver to membership.Resolver (#4646) 97f169052 Reduce API scope for membership.Monitor (#4644) 7e141025b Move ringpop setup to common/membership (#4638) c145ab861 Remove Membership Factory (#4627) e15f181ad Support DNS SRV Records within Ringpop (#4614) 9a072ca10 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).

    b7d2c7764 Generate parentClosePolicy task for x-cluster child (#4682) c894177bc Improve cross cluster components shutdown logic (#4662) 624a1fcee Bug fixes for cross domain operations (#4623) d3d06825a Add domain to pendingChildExecutionInfo (#4611) 39bebb464 Fix target domain not active error handling for transfer task (#4599) e2b8e9496 Split transfer close execution task (#4583) 0bfd2f701 Schedule first decision for abandoned child if parent closed (#4579) a9ed73af2 Add admin respond cross cluster task completed API (#4565) 5879fa346 Misc. fix for cross cluster implementation (#4554) 041061cf2 Wire up cross-cluster operation implementation (#4524) 70cf8bef0 Add metrics for cross cluster implementation (#4527) 898aa9128 Improve close execution task for cross cluster situation (#4528) f74b915cd Execution logic for RecordChildCompletion and ApplyParentClosePolicy (#4474) f2ff1c3b7 Refactor cross cluster queue implementation (#4493) 52c8acc4c Limit batch size for fetching cross cluster tasks (#4487) 5ac1940c2 Fix parent close policy for cross-domain childs (#4486) bd7072c42 Implement xcluster source task executor (#4445) 6101ab249 Implement cross-cluster source task (#4398) c8f3c1cdb Support ApplyParentClosePolicy Cross Cluster Tasks (#4392) c8d0838d1 Set completed workflow current version to lastWriteVersion (#4431) fb8e78277 Add feature flag for scheduling cross-cluster operations (#4424)

    Auto-Forwarding

    95402363d Update auto-forwarding to work for global domains with 1 cluster (#4681) 3ee1178d9 Update batcher to support replicating workflows (#4672) 06891aa5c Add Redirect policy to forward all domain APIs

    ParentClosePolicy for child workflows only

    c7727c080 Parent close policy should apply to child workflow only (#4612)

    ES Analyzer

    80700d8c1 Add long running workflow metrics (#4643) 2fa278740 ElasticSearch Analyzer (#4598)

    MongoDB Support

    46b84be58 Implement MongoDB plugin Part1: skeleton and ConfigStore (#4590)

    IPv6 Support

    064378890 feat: Fixing RPC to allow bindOnIP for IPv6 (#4620)

    SQL Support

    085a79937 Perform schema checks for multiple SQL database and add context to AdminDB DDL interface (#4561) f182b8710 Unify mysql user password for testing (#4589) 75b10a5f8 Fix mysql insecure hostname verify didn't work (#4569) f5ce7cb60 Implement sharded SQL driver to support using multiple SQL databases (#4504) 90e2290d2 Refactor to add a SQL driver layer for multiple SQL databases support as sharded SQL (#4498)

    Auth

    334d51fa4 add workflow type to signal with start auth (#4495) f98bd06ef add enable service auth logging key (#4480) b22df4152 extend permission attributes for service auth (#4468) 7aca82984 Load OAuth credential on startup instead of request processing (#4442) 4c2bcc75f Fix OAuth sample config and add docker-compose for OAuth testing server 5191468f2 Adding middleware to inject Auth token for internal requests to frontend (#4364)

    Graceful failover

    0c3db563a Integrate failover into into describe domain response (#4440) 920077cc0 Adding debug metrics in domain callback (#4484) 6ee5f9378 Add getFailoverInfo API (#4408)

    Refresh Tasks API

    417f1503c fixed refresh workflow tasks (#4750) 612373147 add refresh tasks API to client (#4747) a5c527f71 Allow generating workflow tasks if workflow is non-current (#4688)

    Corrupted workflows

    69805085a Add Watchdog Workflow with Corrupt Workflow Fix (#4713) e13da5812 Add fixer workflow triggered by remote (#4482) 1cc94d502 Add a step to scan workflow to be in DLQ (#4471)

    Activity dispatch optimization

    de0653f2e add metric tags for activity task disaptch (#4821) 3581be59d remove redundant type conversions for activity task dispatch (#4820) ac8cbbd46 add activity dispatch configs to matching (#4818) 532da7191 merged activity dispatch config f5cfeaf7b add activity dispatch configs (#4816) c4713d202 updated idl for activity task dispatch (#4815) b4f38d060 add data contract for activity task dispatch (#4813)

    Cadence CLI Changes

    b445012a5 Improved CLI DLQ read command (#4780) 950f5ac02 Added --format flag to render table, json or custom template (#4777) c833c98cf Use RenderTable for the remaining CLI commands (#4774) 99fcca82a Allow loading service config for all DB operations (#4768) 0557c2b50 Added presentation layer for rendering workflow list tables (#4773) 9d6589984 Allow reading shard list from stdin for CLI DLQ operations (#4771) 5511bd618 Drop unused flags for cli rereplicate command (#4728) ceacad005 Fix NPE when observing history in CLI (#4714) 953014388 Update CLI client factory to use grpc clients (#4605) 38d1e2a13 Add exclude query for list and reset-batch command (#4699) cf21c869c Add skipCurrentCompleted option to reset-batch command (#4698) 41c89238d Update domain describe command to support JSON output (#4674) c22095099 Fix admin db thrift decode tool (#4665) 75a992a47 Create ElasticSearch client via factory (#4660) 9d40c45d2 Add admin tool to decode any thrift binary into JOSN (#4634) a370de048 Cli: notify on SIGINT (#4615) 8c9db1879 Expose GetTaskListByDomain in CLI (#4462)

    Bug fixes

    0c8a0fdff Fill domainID for backwards compatibility (#4819) 6981b1d85 Only update maxReadLevel after successful re-acquire of shard (#4799) 7328473c4 Fix ScanWorkflowExecutions function in frontend client (#4781) 13f9cf8b3 Added missing mapper fields for DecisionTaskTimedOutEventAttributes (#4762) 1923121f3 Fix auto-forwarding for QueryWorkflow API (#4763) f1a09839e Fix data conversion from serialization.WorkflowExecutionInfo to persistence.InternalWorkflowExecutionInfo (#4758) 059669895 Use setupBackoffTimer with locking (#4748) b0da1be3b Fix SQL implementation of DeleteWorkflowExecution (#4746) 19a8526f3 Update cadence batch command to receive more input (#4725) edf4cb423 Fix parsing domain_id in child_info_maps for backward compatibility (#4722) dea642993 Fallback to zero value for initiatedID in exteralWorkflowExecutionFields struct (#4720) 27a0df202 Add decision offset to LastDecisionCompleted reset type (#4700) e8fdcd91a Fix cassandra plugin nil pointer dereference issue (#4697) 027bbd6c6 Fix queue diff metric for disabled clusters (#4686) 35ae7e7f1 Fix canary/bench dev configs (#4675) 27afb62bd Fix remote sync match for standby domains and task creation time (#4654) 32123b941 Fix NPE in GCP archival (#4626) e13b6686a Fallback to zero value for non-present parent execution fields (#4617) 0b4768365 Fix get replication task read level update issue (#4607) 110a13519 Fix NPE when replicating child started event (#4591) a76d1a56f Set workflow start time in application layer (#4581) e3725619d URL encode postgres credentials (#4550) 384a3a4b1 Update shard context to reduce DB calls for closed shards (#4547) a590cacc3 Fix record child completion error handling (#4515) 3eda7b983 Fix timer resurrection check (#4499) 3ef32e26e Fix workflow retry policy overriding workflow timeout (#4467) 3e3bb6723 Fix startTime in workflow task refresher (#4488) 7ee533975 Fix nil pointer dereference issue in matching (#4481) c387b4061 Fix workflow refresh for closed workflows (#4472) 723149b54 Revert ratelimiting behavior for frontend worker related APIs (#4435)

    Misc improvements & updates

    ea4d16525 As-simple-as-possible addition of background-processing ratelimits (#4775) 61c5d58f9 Purge un-hydrated replication tasks when doing dlq merge (#4769) e4cb51fb4 Added history corruption checks for workflow signaling (#4761) 6f3da1cf8 Add more docker compose files for multiclusters with ES and different DB (#4757) d83fa3a8f Log more tags while putting to replication task to dlq (#4754) 71c277498 Add rate limits for inline archival (#4743) a19271324 Lowers priority of a significantly noisy log entry (#4730) 9abf34d09 emit task list backlog metric in matching (#4734) e27ed8098 Update error message for too frequent domain updates (#4711) 99ace7ae5 Upgrades python version for cqlsh (#4709) a0be5926b Improve standby task processing (#4695) d117c3cf6 Update ElasticSearch version to fix log4j issues (#4691) 9c9566163 Update Base and Builder Images to Apline 3.15 (#4689) 37a6cfd5b Emit persistence latency histograms (#4678) 97300ecfa Add jitter for starting failover queue (#4683) e0a1d20fc Add support for custom cassandra authenticators (#4676) f3003449d Improve error message when a workflow's decision is rejected due to concurrent changes (#4673) b7303535a Support partial retries for ApplyParentPolicy (#4610) 3b36196e6 Add logs for ID length violation checkers (#4655) 0aa749438 Use streaming implementation of thriftrw encoder/decoder (#4568) 4461fe020 Fix build by swithcing to golang:1.17-alpine3.13 (#4641) 2957a708c Apply ConnectAttributes for postgres (#4639) e2adab995 Add prometheus metric for canary/bench (#4625) 2e75c15f4 Update docker image to use 1.17 golang (#4632) d61a3b3b2 Update golang/mock to v1.6.0 (#4636) 97a413f34 Fixing master build (#4631) 2b08e4002 Add dynamic config to disable generate replication tasks (#4608) 39b28e667 Add ctx parameter to queue processor actions (#4600) fa6d71d1d Limited retry for normal decision scheduleToStart timeout (#4567) 942f0327c Change canary back to start both worker and starter by default (#4587) 5affa4f77 Fx docker template and canary batcher workflow (#4585) 0e4b8d39f Add cross region sample config and minor fix docker template (#4574) 49aa6352e skip eror on creating domains for canary (#4584) 93934ab5b Show more information about panicked objects (#4575) 8e8e943fb Fix build on M1 macs (#4576) bd21dc422 Remove github automerge job (#4577) 87b2eae36 Support filtering global domains in ElasticSearch (#4539) f8f95d5eb Improve server_test and instructions on homebrew and dynamic config docs (#4557) 2719202a1 Upgrade yarpc to v1.58.0 (#4564) 11e9a7bcf Improve archival history mutated error logs and add option to allow archiving incomplete history e1e94ee02 Add a hard limit for number of decision retry attempts (#4490) 19a954a3c Fix docker config template for secondary cluster (#4551) 37e9845bd Add console as logging encoding type (#4549) 3cd5166d1 Log WorkflowID, RunID, domainName when a workflow times out or gets terminated (#4548) c7e94f29b Upgrade golang/sys for go 1.17 (#4543) e94968737 Add server startup test to prevent docker image master-auto-setup getting broken 3ab48432d Add sample config to run with opensearch (#4512) 7e60482b7 Add disableSniff: true flag to update-development_es_v7.yaml (#4501) 2679a9ce2 Managed failover workflow improvements (#4491) 607893ddc Verify delete history branch actually delete targeted nodes (#4494) 3bbf94583 fix flaky TestWorkflowRetryPolicyContinueAsNewAsCron integration test (#4496) ea89af4d9 Fix access control admin handler initialization (#4500) c2264524e Update get tasklist response (#4483) 9e992726a Emit metrics during shardscanner fix and scan activities (#4476) ef7d04914 Add documentation to canary and improvements (#4447) df3e5524b Fix/docker multicluster (#4473) 39184e611 Add tagged loger to shardscanner (#4466) a695fc053 Set limit on range queries to prevent bad queries causing degradation (#4458) a5a722314 Validate shard ID range (#4461) 73579667d Remove previous domain lists from domain cache (#4463) ed86ca88a Matching per domain RPS limit (#4433) 7ca1886f7 Misc improvements: development & sample config & README & Issue Template 4969e353a Allow replicate history generated from same cluster (#4429) 7ef52d582 Add feature flag on emitting signal name metric tag (#4434) 482f47859 Updated yarpc to v1.56.0 (#4423) e974a2ad2 Fix auot-build script typo

    Cleanup & Refactoring

    5ec6c4efc Drop getters on HistoryEvent (#4727) 7084679d5 Staticcheck cleanup (#4751) eff46e0a4 Reuse rate limiter functionality (#4742) 1fd8af37b Added AsFloat64 helper to convert rps related dynamic config properties (#4740) 32cf61233 Drop redundant pointer conversions (#4726) b8d47dc42 Drop pointers on internal history branch types (#4718) b0dff806c Removed unused parameter (#4719) a964dfbd6 Do not pass yarpc options in CLI (#4712) 429db9028 make fmt (#4658) 307dd93f8 Fix badly formatted files (#4647) a3fdf4c5b Cleanup unused setters in client.Bean (#4555) 13c6a2b10 Refactor and improve the retry logic to avoid throttling dependencies (#4351) 5428e35f6 Refactor service naming constants (#4516) 467824e72 Reshuffle service.Config and resource.Params (#4514) 132768ac8 Move serviceImpl to integration tests (#4513) 8ccb533b0 Minor ratelimit test cleanup 82d83f924 Refactor task executor tests (#4475) 93937370e Refactor config methods for internal use (#4448) 88549ddba Refactor test for internal integration tests (#4437)

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(11.30 KB)
  • v0.23.2(Dec 2, 2021)

    Release commits

    Bug fix

    ff5ef719a Fix ResponseInfo to work on all transports (#4649) 97127f0e0 Fix remote sync match for standby domains and task creation time (#4654)

    Improvement

    b4b94c6d7 Create ElasticSearch client via factory (#4660) 831dc7f0d Shuffle responses for replication messages (#4652) d367a88be Add Redirect policy to forward all domain APIs (#4657) 00bbe50d4 Add logs for ID length violation checkers (#4655)

    Misc.

    8dd7a0818 Update docker files for 0.23.2 release

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(10.44 KB)
  • v0.23.1(Nov 19, 2021)

    Upgrade instructions (from 0.22.x releases)

    Schema upgrades (required)

    • Cassandra: upgrade schema to 0.32

    Configuration changes (optional but recommended)

    • Change clusterMetadata to clusterGroupMetadata
    • Change clusterMetadata.masterClusterName to clusterGroupMetadata.primaryClusterName
    • Change clusterMetadata.clusterInformation to clusterGroupMetadata.clusterGroup
    • Change dynamicConfigClient to dynamicconfig with client:filebased and move all fields under the old dynamicConfigClient to a new field filebased under the new dynamicconfig.
    • publicClient is no longer required. If not specified, will default to current cluster's RPCAddress in clusterGroup
    • Sample config

    Release Commits

    New features

    Config Store

    0fd2b50e Added config store functionality (initial implementation) (#4357)

    Cross Domain Operations

    38881a8f Add X-Cluster Child Workflow Completion Tasks (#4336) 40c5f189 Implement history handler for fetching and responding cross-cluster tasks (#4329) adbffa45 Notify queue processor about cross cluster tasks (#4328) 23eb8bea Improve is cross cluster task check (#4326) af307533 Update admin CLI commands for cross-cluster queue (#4321) 58e8e1cc Add cross cluster target task executor (#4317) 8d319e20 Refactor task executor interface (#4300) de9a0869 Add cross cluster queue processor (#4269) 4384e4cc Target cluster cross cluster task processor (#4292) 6964885b Improve definition for cross-cluster related endpoints (#4294) eead0e57 Add client and handler implementation for cross-cluster task APIs (#4286) 622b13b2 Add internal types and mappers for cross cluster related APIs (#4285)

    GRPC

    4b95ec80 Fallback to zero value for non-present parent execution fields (#4617) dbe538e5 Switch canary to gRPC (#4570) 59c8f0ec gRPC for cross DC traffic (#4390) 5328cba2 Expose frontend gRPC port on docker containers (#4312)

    Auth

    8b8d8d80 add workflow type to signal with start auth eacf42f1 add enable service auth logging key d1a3c112 extend permission attributes for service auth 35f588f4 Add authorizer protection for AdminAPI 9a46d9d4 Feature cont.: authorize CLI as admin with private (#4338) 37706b2f Update OAuth implementation to use domainCache to authorize (#4333) 0085b7ab CLI sending authorized request (#4327) 989e35c8 Add Permissions to Attributes and reading Public/Private key from disk instead of reading it from yaml file (#4320) 9f5d4120 Implement OAuth Authorizer (#4306) deed4824 add enable service auth key (#4299) 51be8208 fill tasklist in auth attributes for poll APIs (#4296) 70f3f582 add tasklist to auth attributes (#4288)

    Bug Fixes

    4808e654 Fix NPE in GCP archival (#4626) 49df6717 Handle error case in response info middleware (#4609) efb7b083 Fix get replication task read level update issue (#4607) 144d6946 Fix NPE when replicating child started event (#4591) 0a1337c0 Fix cherry-pick for docker config template from #4585 1affb65a Fix mysql insecure hostname verify didn't work (#4569) 3fd8001a Fx docker template and canary batcher workflow (#4585) 364b2a17 Fix and improve canary thrift config and docs (#4580) f744a6f2 Fix record child completion error handling (#4515) 3cb214af Fix access control admin handler initialization (#4500) 0398bf6f Fix timer resurrection check (#4499) 39f45eb8 Fix startTime in workflow task refresher (#4488) dfca8e13 Fix nil pointer dereference issue in matching (#4481) 5dd7eb7c Fix workflow refresh for closed workflows (#4472) 76573a2c Fix domain updating via grpc (#4418) f52498a8 Fix admin workflow re-replicate command (#4325) abe22845 Fix ndc reset workflow replication bug (#4376) a58b8b96 Fix oauth yaml config (#4360) 8ea6a6a8 Fix CLI jwtKey npe issue (#4358) cd9a33ab Fix deadlock in transfer queue (#4337) fbc79f96 Fix CLI admin domain bug that didn't load Cassandra plugin bec009ab Fix missing activity failure details in standby cluster (#4323) a1b9679a Fix typo in docker config template which cause docker image corruption (#4310) 6a00f35a Fix a racy read in test (#4291)

    Improvements

    d53b1fb1 Support DNS SRV Records within Ringpop (#4614) 2c3a8f39 Change frontend drain time 76653c16 Limited retry for normal decision scheduleToStart timeout (#4567) dbae1304 Improve archival history mutated error logs and add option to allow archiving incomplete history 4048370c URL encode postgres credentials (#4550) 41e9b530 Add console as logging encoding type (#4549) 0332c595 Log WorkflowID, RunID, domainName when a workflow times out or gets terminated (#4548) df0c4bf4 Change canary back to start both worker and starter by default (#4587) 39b1970b Update cadence go SDK for building canary in 0.23.x (#4586) dcfe3f6d skip eror on creating domains for canary (#4584) f53bec11 Add documentation to canary and improvements (#4447) e052190a Add size checker when replication messages return (#4521) 16aed764 Added response info middleware (#4522) a6a17935 Adding debug metrics in domain callback (#4484) e602b8c2 Set limit on range queries to prevent bad queries causing degradation (#4458) 6b9184c4 Refactor config methods for internal use (#4448) d58d3460 Add feature flag on emitting signal name metric tag (#4434) db77377c Refactor test for internal integration tests (#4437) d67fb41b Revert ratelimiting behavior for frontend worker related APIs (#4435) 0b980557 Rewrite/improve basic load test (#4399) cde0f413 Dynamic replication batch size (#4301) efb9f901 Long poll completion buffer to prevent timeouts (#4425) 45c7b4c1 Improve/simplify archival config validation (#4366) fb10abe0 Automatically adjust task priority and redispatch interval based on attempts (#4378) 6dec5aaa Disable basic(db) visibility sampling by default (#4407) 76ec20af Emit logs with workflow execution tag for timedout frontend requests (#4379) 170deed4 Try detecting timer and activity resurrection (#4375) 7110f057 add decision result count check (#4402) 8ad444b9 Add context metric tags for admin handler (#4404) c6ef3c9d Refactor ClusterMetadata defaults and validation (#4385) 185988a3 Add docker file/config/compose for bench and canary 3255b7c4 Failover metrics scope improve (#4391) 4781a8dc Expose invalid timer value in the error message (#4380) f621c7c5 Fill currentCluster RpcAddress with publicClient as default 58ae9055 Optimization for start child workflow task (#4315) 71e730f5 Allow removing replica from domain replication group (#4346) b32af800 Enalbe batch job feature by default and update dynamic config docs (#4343) 70bc1508 Parallelize GetWorkflowExecution SQL calls (#4339) 28e0489e Server and CLI use version from release and versionChecking constant and commit revision (#4308) ffbfdb7d Remove unused replicationConsumer related config (#4324) 66f2f261 Refactor Cassandra test utility for NoSQL support 7db76544 Fix MaximumSignalsPerExecution documentation default value c63aa780 Add persistence error logs to queue manager (#4318) deb0caf0 Update Mutable State to reduce unnecessary update to DB (#4304) 572582c5 Refactoring Cassandra workflow persistence manager for NoSQL support-Part 3 c185ad8c Deep merge config files (#4165) d91e86fe Enforce context timeout for retry policies in execution context and cache (#4303) a24af638 Refactoring Cassandra workflow persistence manager for NoSQL support-Part 2 17663af5 Add domain tag for skip task metrics and logs (#4293) 28bb116f Remove tasklist kind from tasklist id (#4295) 94b24053 Implement new matching and frontend API to get all tasklists for a domain (#4175) ff0046f0 Rename cassandra files to nosqlStores 3cc8c310 Allow skipping optional tests for optional methods in plugins (#4287)

    Misc.

    26189983 Update docker files for 0.23.1 release 01f09391 Update CHANGELOG.md (#4405) 44392dc5 Update community links for Discussion 74207864 Improve contributing and dev process (#4347) 6f989a3d Cleanup lint warning (#4309) 24cd8fa6 Clean up linting warnings (#4290) 7e88e6ec Ignore bench and canary test coverage (#4297)

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(10.44 KB)
  • v0.22.4(Nov 11, 2021)

  • v0.22.3(Oct 14, 2021)

  • v0.22.2(Oct 14, 2021)

    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

    ff344e641 - Improve archival history mutated error logs and add option to allow archiving incomplete history (#4541)

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(80.00 KB)
  • v0.22.1(Oct 8, 2021)

    Schema/configuration change

    None.

    Release commits

    Bug fix

    • 80b0622bc - URL encode postgres credentials (#4550) for https://github.com/uber/cadence/issues/3901

    Improvement

    84b8d79ce - Add console as logging encoding type (#4549) 9336ed963 - Log WorkflowID, RunID, domainName when a workflow times out or gets terminated (#4548)

    Credits

    Thank you @@agrimrules @WToma for the contribution!

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(80.00 KB)
  • v0.22.0(Aug 20, 2021)

    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 to persistence.datastores.<name>.nosql with pluginName: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

    5848c942 Support Cross Cluster Operations in SQL type DBs (#4271) 6f77ae2d Cassandra implementation for cross cluster queue (#4237) 53edb8d8 Support is_cron field for SQL/Cassandra/Postgres (#4191) fc63ab11 Support Listing Scheduled Cron Workflows (#4176)

    Features

    Feature Flags

    0f93d577 Support Feature Flags (#4257)

    Cross Cluster Task

    54d6ccb8 Improve is cross cluster task check (#4326) ddfc1278 Convert transfer to cross cluster task if target domain is active in remote cluster (#4268) ae40d3e6 Thrift and Proto definition for fetching and responding cross-cluster tasks (#4276) 6e3a78de Add cross cluster task interface (#4264) 42caee54 Generate cross cluster tasks in mutable state task generator (#4250) 3eda53be Update shardContext for getting and updating cross-cluster queue states (#4246) bda4c5c2 Add cross-cluster task related types and methods to data/persistence interface (#4225) d5fbc5e3 Add cross cluster processing queue state to data/persistence interface (#4230)

    CLI

    263227f0 Update admin rereplicate command to support SQL databases (#4227) 758ace24 Update Admin CLI workflow operations to support SQL databases (#4222) 3866711f Add Admin Shard List Command (#4224) e3e0c263 Update Admin CLI shard operations to support SQL databases (#4207) cade91a7 Update admin DB commands to support SQL databases (#4198)

    Documentation

    9b4aaa67 Add design doc for workflow shadowing (#4137)

    Bug Fix

    ad0261df Fix ndc reset workflow replication bug (#4376) 45d5eca2 Fix deadlock in transfer queue (#4337) 83feeffa Fix missing activity failure details in standby cluster (#4323) 407c3664 Support prefix match for list domain command (#4275) 8143d555 Fix proto FromParentExecutionInfoFields mapper (#4262) 23fbb4fa Fix styles and instructions in docs (#4260) 7af95b70 Fix Cassandra schema version check (#4247) b6601123 Fix persistence test for task completion (#4245) e2cde4af Domain queue ack level fix (#4218) 2fb5c02b Pick signal requestID dedup fix from temporal (#4210) 61399e53 Fix update domain replication ack level (#4212) 3e2ffc33 Fix docker-compose bug: publicClient is not valid and error

    Improvements

    362de93e Parallelize GetWorkflowExecution SQL calls (#4339) 1c62c216 Server and CLI use version from release and versionChecking constant and commit revision (#4308) c75cbf8c Update Mutable State to reduce unnecessary update to DB (#4304) b7043ed8 Enforce context timeout for retry policies in execution context and cache (#4303) dad87f7f Add domain tag for skip task metrics and logs (#4293) 4305fc03 Allow skipping optional tests for optional methods in plugins (#4287) b25da7ec Use global domain by default 1cd5fd2c Remove unnecessary nonzero requirements in some fields of NoSQL config struct c4f2c09f Adding protoversion in config file (#4263) 12ddac4f Remove IsConditionalFailed from NoSQL ffe4e2fa Refactoring Cassandra workflow persistence manager for NoSQL support : Part 1 e4a59175 Task fetcher implementation (#4272) 99fb2163 Rename persistence files for consistency (#4256) ff5e37ad Add common Future util implementation (#4266) e528ef3a Remove timerGate usage in transfer queue processor (#4248) e8cc575e Add version check for JavaConsistentQuery 2b684814 Preserve some time to return part of the result if the context is timing out (#4265) 7e6fbdbd Adding protoversion as a config value (#4252) ea912b04 Update generating close event to use event version (#4261) 0b058c0e Rename MetadataManager to DomainManager 208edf41 Refactor: not require db visibility when ES visibility is provided (#4241) 723ecf57 Refactoring Cassandra task persistence manager for NoSQL support 532dfb10 Add placeholder for dynamo visibilityCRUD methods (#4244) 8d3e54e3 Remove transfer/timer failover queue level from persistence layer (#4232) 2c76237f Refactoring Cassandra visibility persistence manager for NoSQL support e1fb9d77 Add logic in replication stack to handle different shard number (#4239) de3a6ac4 Raise VisibilityListMaxQPS limit for local docker-compose env 84059fb3 Change domain data CLI parameter for consistency (#4240) 932303f9 Add conn_attrs flag to admin db commands (#4226) ae963c19 Remove unused ResetWorkflowExecution method from persistence (#4236) 58df9131 Regenerate proto types (#4234) 466c7f57 CLI: Differentiate local and global in describe domain 640d3783 Add skeleton of other nosql plugin and add dynamodb package a49e2daa Refactoring Cassandra shard persistence manager for NoSQL support 749c80dd Minor improvements on NoSQL interfaces and implementation (#4219) 758123f8 Remove unused now parameter from task generator interface (#4217) 2843e428 Shift pointer conversions down to thrift encoder (#4206) 7e333a8d Wire up rebalance CLI (#4213) 1f14ebf6 Add rebalance workflow (#4199) 68dc1ed5 Add more comments about how to implement the interfaces in NoSQL 7f49a0ff Introduce Options for task list scavenger (#4205) d90f87af Refactor: move errorChecker to nosqlplugin pkg d15fbe51 Tidy go mod (#4193) b2adb71e Update Master cluster to Primary cluster (#4185) 1d9144df Not allow more than one types of metric reporters (#4180) 95713dbe Support managed failover workflow with drill mode (#4177) 5a9a1efa Expose max message size config for gRPC (#4166) b6b70ffb Detect when IDL submodule is not initialized, warn user (#4172) 386e1e70 Expand workflowCompleted error to other APIs (#4163) 800107ad Add debug info when List API is hititng ratelimiting/sampling ac856a63 Add Signal Name to Signal Metrics (#4161) 7457be79 Elasticsearch TLS support (#4154) 36f73881 Assign CLI version on CLI commands (#4153)

    Misc.

    ec3596a Update docker for 0.22.0 patch release

    Credits

    Thank you @spmistry for the contribution!

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(9.65 KB)
  • v0.21.3(Jun 17, 2021)

    Features

    05fb808e Support delaying cron workflows (#4196) 875b690c Update admin db commands to support all registered SQL dbs (#4189)

    Bug Fix & Improvements

    0cc2fe37 Rollback workflow already completed error (#4209) 5ad53e3c Fix domain last updated time in updateDomain Operation (#4211) fce6eaa8 Check identity length before RespondDecisionTaskCompleted to history (#4215) 49bc2c0e Add dynamic configs and metrics to control/monitor per id lengths (#4173) d55f707f Fix describeWorkflowExecution in passive cluster (#4203) 94a09915 Use frontend client in parentClosePolicy workflow to allow auto-forwarding (#4202) 50db73ee Add nextEventID for frontend PollForDecisionTask response (#4190) d893a9c5 Fix sql error conversion (#4194) 54d2653e Improve error handling for SQL persistence implementation (#4178) 40fb112a Fix proto mapper for Payload (#4184) cd40ea38 Handle workflow not exist error when archiving history (#4181)

    Misc.

    36cfde8b Update docker for 0.21.3 patch release 73a2ceb7 Go mod tidy

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(9.45 KB)
  • v0.21.0(May 7, 2021)

    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

    • 08128b113 - Workflow shadower bug fix and improvements (#4117)
    • 28fd61d8e - Shadower workflow implementation (#4042)

    Bug fixes

    • b29845a06 - Fixing typos in README.md and comments File (#4142)
    • 429cb1130 - Bug fix: Declare CloseStatus and HistoryStatus as integers for development dynamicconfig (#4125)
    • 07d537122 - Fix don't swallow the error when building zap logger (#4102)
    • d2c25ac79 - Fix docker build with empty idls
    • 22f5e06f5 - Fix missing domain field when creating activity scheduled event (#4087)
    • f3eaa110d - Fix emit 0 count if encounters error (#4073)
    • d5cc770c0 - Fix domain registration error handling in cassandra (#4066)
    • b78809c69 - Fix time convertion to nanos (#4063)
    • 480cf5ee9 - Fix Dockerfile (#4083)

    Tests

    • 24cefa695 - Fix race condition in task re-dispatcher test (#4147)
    • fa282dc59 - Fix flaky Cron integration test
    • f50a0fe4b - Fix flaky test (#4116)
    • af535dcc1 - Fix regression introduced by integration test refactoring (#4109)
    • d3d456138 - Fix lint error in integration tests (#4100)
    • 8fdedfb86 - Seperate integration test suite definition from actual integration tests (#4098)
    • 487653fa3 - Add larger test timeout for large test (#3894)
    • 5a10dc4fe - Fix flacky integration tests (#4094)
    • dfc42d39f - Refactor integration tests (#4091)
    • 471f99be2 - Fix flaky integration test (#4092)
    • e1ad09bb5 - Fix CLI unit tests (#4090)
    • d070b9dbf - Revert "Drop pointer on ActivityTaskScheduledEventAttributes.Domain (#4009)" (#4082)

    CLI

    • cf253f0f5 - Use go client version v0.17.0 (#4164)
    • 06149bd9c - Bump cli version to 0.18.4 (#4150)
    • 45ef498b5 - Update readme for CLI homebrew (#4135)
    • 7bd910513 - Support CLI Delay Start (#4097)
    • 00fafac0c - Update CLI usage for IDReusePolicy: TerminteIfRunning

    GRPC

    • bc1181155 - Replace gRPC port when resolving host address (#4174)
    • 04f16e751 - Set grpc ports in docker config template (#4146)
    • d0a8f7e6a - Created GRPC handlers and internal clients (#4057)
    • d6c50f5cc - YARPC error mapping (#4070)
    • 329357ce0 - Remove omitempty for fields used in PersistenceInfo (#4151)
    • 30702c2e0 - Moved out public proto IDLs to cadence-idls repository (#4152)
    • 69d742930 - Add PersistenceInfo to DescribeCluster proto message (#4148)
    • 21b21cdbd - Add PersistenceInfo to DescribeCluster thrift response (#4149)
    • 6c06e562e - Add persistence info to DescribeCluster API call (#4136)

    Others

    • 430eb7491 - Allow updating ElasticSearch only when adding new search attributes
    • 4a71b129a - Update SQL task manager to support sharded SQL DB (#4171)
    • fd3822989 - Update workflow execution metrics (#4159)
    • 62a77458d - Add Documentation for dynamicconfig: value type and allowed filters
    • 12579bd15 - Support workflow already completed error (#4123)
    • 37b8ea448 - Config layout refactor: centralize config file for documentation
    • aac9dbabf - Bump supported client feature version (#4145)
    • 7057e5e87 - Improve shadow workflow (#4144)
    • a86abb482 - Replace statsd with prometheus as default in docker-compose
    • d53e6319c - Wrap shadow workflow config inside SideEffect (#4140)
    • 8d3519b24 - Update domain deprecation command to fail if workflow exists (#4126)
    • 6fea8dd7c - Add print json flag to list domains command (#4134)
    • 6ca6e0ecc - Refactor dynamicconfig comments for documentation
    • d07d9805a - Remove active domain check in shadow workflow (#4133)
    • acd25964a - Update domain registration to check required data field (#4132)
    • 1fd6a57ae - Revert changing HistoryLength and CloseStatus to string (#4130)
    • 801fda775 - Improve tasklist and implement history scavenger for SQL (#4059)
    • b031307b3 - Refactor config: move config and dynamiconfig one level up (#4118)
    • 7fa8f081c - Allow setting levelKey for logging level (#4120)
    • bd6c19c69 - Improvements for show history from archival
    • 3a1e1bcd7 - Expose server version tag to be set during build time
    • 042923ff5 - Add proto changes for delay start field (#4104)
    • 93a3e94a2 - Forward reset request to the active cluster (#4114)
    • 0bc3681ed - Add more options to config_template for docker image (#4084)
    • 2a7b75d6b - Add version to Kafka config (#4072)
    • caf8fbd98 - WorkflowExecutionCloseStatus proto mapping (#4080)
    • 1f27aaedc - Return plain yarpcerrors.Status with no internal error match (#4081)
    • 84c938a01 - Treat persistence timeout as transient error (#4088)
    • bd5859bd0 - Improve DLQ merge and purge command (#4075)
    • e286ca01c - Add domain queries to scanner and fixer, and skip terminated scans (#4079)
    • 7661a45f7 - Update bug report and PR templates
    • 560b268f7 - Release current workflow lock on create as zombie (#4085)
    • ec3d1b5d3 - Add a domain cluster filter during replication (#4069)
    • 049196e80 - Regenerate files with thriftrw v1.25.0 (#4074)
    • dca153d73 - Use gogofast to register types using gogo registry (#4071)
    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(9.45 KB)
  • v0.20.0(Apr 16, 2021)

    New Features & Improvements

    GRPC

    5ffd942d - Drop pointer for event id/version fields (#3948) 663f74cf - Drop pointer for signal name fields (#3966) 7af92bef - Drop pointer fields on remaining domain fields (#3972) fba536b1 - Drop pointer on marker name fields (#3971) 67ae5376 - Drop pointer for security token fields (#3970) baf151a1 - Drop pointer for task id fields (#3969) 523edcec - Drop pointer on visibility query fields (#3968) 3c03ea2f - Revert changes to use string casting for shard ID (#3991) b877308b - Drop pointer for shard id fields (#3996) 0035139a - Drop pointer for DomainTaskAttributes fields (#4003) c6d962ea - Drop pointer on cause/reason fields (#4002) cf67a20f - Drop pointer on BadBinary fields (#4001) cf5c9cc7 - Optional fields in proto IDL requests (#3989) 4cd869c4 - Drop pointer on ActivityTaskScheduledEventAttributes.Domain (#4009) da876dfb - Add oneof for DescribeHistoryHostRequest in proto IDLs (#3988) 24509c20 - Move non-public proto errors to internal api (#4011) 0921bf56 - Add missing fields/messages to proto IDLs (#4017) 0e34047c - Drop pointer on remaining fields (#4008) c5d67e3e - Use common ParentExecutionInfo in proto IDLs (#3997) f2f10d4d - Proto mappers (#3902) a8a94a21 - Revert "Drop pointer on ActivityTaskScheduledEventAttributes.Domain (#4009)" (#4082)

    Bench test

    117d6c18 - Open source bench tests (Part 1) (#3990) 1106daa6 - Open source bench test (Part 2) (#3998) b5ce3140 - Open source bench test (Part 3) (#4005) 174ca093 - Bench test README (#4012)

    Task processing

    528c7142 - Deprecate old task processing logic (#3938)

    Replication

    aa93e228 - Create non-transient decision when current version updates (#3960) 6c8d0486 - Release current workflow lock on create as zombie (#4085)

    CLI Improvements

    8852cfbb - cli v0.18.3 (#3959) 8aba0537 - Fix dryrun option for SQL/Cassandra schema update command

    Domain deprecation

    586704e2 - Implement domain deprecate CLI command (#4030) 0c46f3d4 - Update DeprecateDomain handler to handle global domain deprecation (#4029) 1e8b738e - Update list domain CLI command to list deprecated domains (#4039) b399bd50 - Disable starting new workflows in deprecated domain (#4038)

    Workflow shadower

    a2789954 - Update IDL for workflow shadower (#4035)

    Bug Fixes

    7882518e - Provide background context to all scanners (#3965)

    Misc.

    540ea2ca - Add missing -race arg on a couple test targets (#3957) ce50c569 - bumping default QPS since frontend is making double calls to workflow list. (#3958) 3ea200e8 - Attempt to make some racy tests more reliable (#3961) 8cf308dc - Flatten UpdateDomainRequest (#3954) c244e9d0 - Fix xdc failover integration test (#3967) d39d4287 - Fix IP address in docker template (#3983) 59a98cf6 - Kafka TLS: allow CA(RootCAs) or cert/key(certificate chains) only c5334afa - Use a test-logger in tests rather than stdout (#3976) 4b548e27 - Update cadence client (#3995) 2f822ee6 - Rename metric name SignalInfo to SignalInfoSize (#3993) 0a6ed6e6 - Allow configuring MaxWorkflowRetentionInDays (#3982) 456286a4 - Fix some racy reads in tests (#3975) aecaa886 - Pretty-simple "find dependency updates" helper (#4000) c9f200a5 - pick child workflow id check (#3994) e43f52ad - Move tcheck to go.mod, get rid of glide dependency (#3999) 99430f5a - update goveralls (#4004) addbdd47 - Default to non-verbose make test output (#4010) dfde9ba5 - Decouple decision handler and history engine impl logic (#3973) 94223715 - feature/changelog (#4014) 80b7bfc7 - Move workflow utility components to separate package (#4015) ef9a4181 - Add more default Prometheus histogram buckets for non-latency timer metrics like history_size 4ed0171f - Add helper methods for sql plugin registeration (#4024) 6b048ce4 - Move decision related components to a separate package (#4021) c0f1252a - fixed the poller count metric (#4020) 0c9a74d3 - Add support for ScyllaDB (#4022) 7bbf6dd7 - Log info message when outstanding poller is canceled (#4031) aae8fb94 - Add compose file for multi-cluster setup (#4032) 150911cf - Increase poller history LRU cache size (#4033) 996cd8a7 - Cadence client downgrade to v0.15.0 bfcb03fe - Move visibility manater setup out of persistence base test (#4062) a3708fb1 - Fix missing root dir prefix when loading dynamic config (#4056) ed82bb73 - Refresh gocql session on no connection error (#4058) 86e6c7c3 - Enforce context timeout in matching AddTask (#4048) 2458bdbf - Minor updates: improve README and add comment for dynamic configuration (#4053) f722cc0a - Emit task list lag metric in matching (#4051) 6a80bf1a - Add the service name to the log entry (#4044) 764500ac - Switch to gogo and yarpc compilers (#4040) 1de8cd41 - Fix prometheus metric error for dual emitting (#4047) e7378622 - Fix the metric ActiveClusterGauge should be as common metric (#4043) 378111f4 - Context metrics tags to pass transport tag (#4037) d7efde44 - Fix warnings when compiling the source code (#4036) 1b3436cf - Rewrite makefile to be reliable (#4034) 175850a2 - Update docker for 0.20.0 release 3a7f18a1 - Fix lint error in integration tests (#4100) 9b62895d - Seperate integration test suite definition from actual integration tests (#4098) f828ab99 - Treat persistence timeout as transient error (#4088) 98ff0e59 - Refactor integration tests (#4091) 472f7578 - Fix Dockerfile (#4083) 03cdc869 - Regenerate files with thriftrw v1.25.0 (#4074) 22ee3c0b - Fix missing domain field when creating activity scheduled event (#4087)

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(9.06 KB)
  • v0.19.2(Apr 16, 2021)

  • v0.19.1(Mar 30, 2021)

    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

    f60488a1 Cleanup internal types and remove generator (#3950) 2062895d Drop pointers for bool fields (#3956) 048d40ef Drop pointer for activity id fields (#3949) bbfd6745 Drop pointer for retry policy fields (#3951) b22be7c7 Drop pointer on binary checksum fields (#3943) ece6cac1 Drop pointer for attempt fields (#3937) a9e9451a Drop pointer for forwarded from fields (#3942) d5a4cbf7 Drop pointer for poller id fields (#3941) b846ad13 Drop pointer for cron schedule fields (#3936) 4f459305 Drop pointer for page size fields (#3935) 5733f4f0 Drop pointer for timerid fields (#3931) e3d0943b Drop pointer on request id fields (#3928) 79b8acf2 Drop pointer for cluster name fields (#3927) 6fa4cb55 Drop pointer for task list name (#3926) d11708d1 Drop pointer for activity type name (#3925) ea7b4780 Drop pointer for workflow type name (#3924) 47cad83d Drop pointer for identity fields (#3930) b32559a1 Drop pointer for worflow / run id fields (#3917) 2847890a Drop pointers for domain name/id fields (#3916) eb9fe6b5 Proto domain api improvements (#3907) ac905302 Switch to protoc-gen-go (#3905) 6f67616f Initial protobuf types and API (#3863)

    Task Processing

    2c47b8e2 Enable multicursor queue processing logic by default (#3933) d6d0a0af Add task processing workflow busy metric (#3892)

    Replication

    f40bb06c Create non-transient decision when current version updates (#3960) 68c9cdf0 Handle data corruption error in replication (#3895) a04ba160 Add replication error logging and metrics (#3891)

    Scanner

    2f6bedea Start enabled shardscanner fixers (#3906)

    ElasticSearch

    dcd6d3f3 bumping default QPS since frontend is making double calls to workflow list. (#3958) c7d2f10c Support AWS signing for ElasticSearch client

    SQL

    2c8cff08 Add helper methods for sql plugin registeration (#4024) fe4b48d7 Fix scan unsupported workflow in SQl DB (#3909) eb460e13 Simplify templateGetLastMessageIDQuery sql query (#3890)

    Others

    3ec317a4 fixed the poller count metric (#4020) 5498f3c6 Revert changes to use string casting for shard ID (#3991) e8956402 Emit number of task list managers started (#3929) 9d82ce93 Update test to suppourt multiple database concurrent updates (#3939) 7cbd5dc9 Add more options to config_template for docker image and disable archival by default 8db55b59 Mutable state inconsistency logs and metrics (#3921) 0ca1028f Simplify tags (#3923) 883848ec add server side metrics for activity & decision poller counts for task lists (#3918) 8b499627 Use GetDomainName instead of GetDomainByID for retrieving domain names (#3899) f51a4264 Fix workflow reset command (#3904)

    Misc.

    cf99c5bb Update docker for 0.19.1 release 8f875299 Check in generated proto code 6bb5adaa Move tcheck to go.mod, get rid of glide dependency (#3999) fbbdbb8a Repair 0.19.x branch (#3978) 253017dd cli v0.18.3 (#3959) 449d38a4 removed proto from tools b688c262 remove proto dependency 79d0c8ea Improve docker-compose local unit-test, minor cleanup (#3955) 03664bea Document disabled lints, especially unhandled-error db2a0e52 Add easily-enabled lints fedcdaf1 Add recover() lints beb64a7b Add string-of-int lint, basically go vet 1.15 c929c39b Ignore comment-formatting lints 8eb16363 Switch from golint to revive 6b5c1033 CLI v0.18.2 (#3944) 88e1b650 Fix docker-push.sh execution (#3919) 710cd618 Remove duplicate docs (#3912) 64add8fc Version goveralls, remove unused go bins from docker setup (#3913) 49553cbc Makefile cleanup / codegen revamp / gobin removed (#3903) b3815212 CLI 0.18.1 patch release (#3908) 5009940b Add a "help" target to the makefile (#3898) 04db1c02 CLI 0.18.0 release (#3896)

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(8.58 KB)
  • v0.18.2(Mar 17, 2021)

  • v0.18.1(Mar 1, 2021)

    Bug Fix & Improvements

    b6dfe37e - Move tcheck to go.mod, get rid of glide dependency (#3999) 7882518e - Provide background context to all scanners (#3965) f30083a6 - cli v0.18.3 (#3959) (4 weeks ago) 6bdf90a5 - CLI v0.18.2 (#3944) (4 weeks ago) c5643e7a - Update test to suppourt multiple database concurrent updates (#3939)

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(70.00 KB)
  • v0.18.0(Jan 22, 2021)

    Schema

    • MySQL schema upgrades: default database upgrade to 0.4, visibility upgrade to 0.3
    • PostgreSQL schema upgrades: visibility upgrade to 0.3

    Notes

    • Allow using Kafka TLS without cert ca and key (#3862) EnableHostVerification started to be used for Kafka TLS, by default it’s false and which means InSecureSkipVerify is true for Kafka TLS. But previously InSecureSkipVerify is false. If you want to keep the same behavior, please update your config to set EnableHostVerification to be true. It won’t break anything if not doing so, but may be risky to not verify it. This option is basically the inverse of InSecureSkipVerify. See http://golang.org/pkg/crypto/tls/ for more info.

    • Support visibility query with close status represented in string (#3865) Advanced workflow visibility record query syntax now supports using string as workflow close status. Accepted values are: COMPLETED, FAILED, CANCELED, TERMINATED, CONTINUED_AS_NEW and TIMED_OUT, case insensitive.

    New Features & Improvements

    GRPC

    0efe3b6a Remove proto dependency c6b3060b Switch Health status endpoints to internal types (#3842) 435f1e8f Switch the remaining history component to internal types (#3843) cb65b833 Switch common/ndc to internal types (#3841) a5aaeb15 Switch history/query to internal types (#3836) 54559f48 Switch history related types to internal (#3835) e336c77c Switch timeout type to internal (#3833) d59208a5 Use internal types in persistence store parser (#3821) 2675fb93 Switch decision related types to internal (#3822) ecdfd7c3 Switch history/replication to internal types (#3805) 85bb9793 Switch integration tests to use internal types (#3815) 0f02810d Switch frontend handlers to use internal types (#3828) b786d3cd Switch admin handler to internal types (#3823) cca62432 Switch WorkflowExecution type to internal within history service (#3816) a6edb240 Switch domain stack to use internal types (#3754) 4318e53f Add thrift mapper from internal sql types to and from thrift (#3814) c324af8c Switch common/testing to internal types (#3793) f8dbcdab Introduce internal types for sql blobs (#3810) c3614112 Regenerated internal types to include ActivitiesToDispatchLocally (#3812) 2069ee4d Convert PayloadSerializer to internal types (#3799) f3e13b24 Switch CLI server clients to thrift wrappers (#3803) fb144ffd Switch parentclosepolicy worker to internal types (#3807) bb71629e Switch worker/archiver to internal types (#3806) 2de98166 Switch common/archiver to internal types (#3788) 25ea2800 Switch errors to internal types (#3759) 2b635fb0 Add json tags for internal types (#3769) 340eee77 Convert execution persistence types to use time.Time, time.Duration and internal types (#3775) b0316fa8 Switch visibility related types to internal (#3770) 32b167ba Switch shard related types to internal (#3768) 25281dff Switch remaining task/matching types to internal (#3767) 94e61d81 Explicitly list frontend handler interface (#3763)

    Task Processing

    5bb1c718 Add task processing workflow busy metric (#3892) aa61ba25 Fix activity lost metrics (#3889) 59286214 Transfer queue validator (#3875) 926e9094 Task processing debug logs (#3877) e855a6ae Add logging/metrics for decision attempts (#3849) c5a16ab6 Fix error handling when processing parent close policy (#3845) 005d7e8c Improve retry policy for operations in task processing (#3765)

    Replication

    79ce048a Handle data corruption error in replication (#3895) 66c48434 Add replication error logging and metrics (#3891) 8b63df7d Update read DLQ messages API to return raw task info (#3869) 0d737d48 Add domain name tag in failover metrics (#3882) 49b64fc4 Add admin CLI scan command for unsupported workflows (#3824) 0912eef0 Ignore workflow without version histories (#3773)

    Scanner

    ba9eecf9 Start enabled shardscanner fixers (#3906) 04044c63 Add timers shardscanner (#3846) 76a38b49 Set config for shardscanner fixer (#3844) 4dce7d4f Use shardscanner for execution scanners (#3772) 94c063a8 Run fixer workflow automatically (#3808) 8a6df383 Create domain filter for fixer workflow (#3771)

    Workflow Reset

    51ddd5b5 Fix workflow reset command (#3904) 94d510e6 Remove strict sanity check to allow reset (#3879) b9f3cffd reset workflow with no decision task complete (#3687) 4b754457 Patch a change to support reset 2dc workflow (#3778)

    ElasticSearch

    6e69fa1a Support visibility query with close status represented in string (#3865) d58cf9d6 Fixed elastic config parsing and introduced optional disableHealthCheck (#3838) 66efd3ff Fix lint error for esUtils package (#3813) a201ed75 Fix ES client config NPE (#3794) ea6ae3d0 Allow custom ES client options (#3790) 1b4c9a81 Allow disable Sniff for ElasticSearch (#3777)

    Kafka

    54abf098 Allow using TLS without cert ca and key (#3862) df3c7147 Rewrite Kafka client and support SASL/TLS

    SQL

    98cd0a55 Pick sql index changes (#3866) ba840f3e Merge sql updates: Blob size increase (#3858) 2cc64c6e Support different SSL modes (#3787)

    Others

    955f41ce break if adminClient returns error (#3887) 405b3340 Fix dynamic config collection logValue function (#3880) 4044e852 break out when response is nil (#3886) 4b2ae3eb Improve shard context timeout handling (#3881) bc163ed0 Make max activity schedule to start timeout for retry configurable by domain (#3878) 6a8e9a38 replace string based logging with tagged logs (#3871) eb161e6f Fix go-generate (#3864) 607b605a Handle matching task list conditional error (#3867) 2bb477b0 Delete unused dynamic configs that have no referrence anymore (#3859) 9a34dcf2 error check before return the ActivityLocalDispatchInfo (#3853) 01028b6a Fix NPE in DescribeMutableState (#3850) 2ac93aee Switch to gocql interface (#3837) 9cb40529 Fix get raw history for transient decision (#3847) a5a62d6f Add various default config to startup 11dc425d Add CLI command for signalWithStart workflow execution (#3819) 3e5100f8 Log short context timeout for long poll GetWorkflowExecutionHistory (#3818) 0d10cd3e History Error Injection Client (#3796) c2e2e603 Add cadence_service tag for all metrics in rootScope 127a97a1 Fix workflow retry policy for childWorkflow (#3780) a64c8c58 Gocql interface and open source implementation (#3774) 7128c26d Frontend and Admin Error Injection Client (#3764) 0993f6eb Set default MaximumSignalsPerExecution to 10K (#3776) 5d7f9342 Matching Error Injection Client (#3746)

    Misc.

    d0290a17 Update docker for 0.18.0 release 5f8e1f23 CLI 0.18.1 patch release (#3908) 13303a3d CLI 0.18.0 release (#3896) 0b5a8511 Latest idl (#3888) 218de533 Add instructions to setup local MySQL and Postgres (#3868) 4f405e92 Downgrade golang tools version (#3876) ea35743c Improve development documentations d3aeabdf Improve building tools and docs e41832df Add compose file for prometheus and improve docs (#3782)

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(8.41 KB)
  • v0.16.1(Jan 21, 2021)

    Bug Fix & Improvements

    926c6de Fix get raw history for transient decision (#3847) 6e20336 Fix error handling when processing parent close policy (#3845) 92c7457 Fix NPE in DescribeMutableState (#3850) d63253b Fix scan unsupported workflow in SQL DB (#3909)

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(49.00 KB)
  • v0.17.0(Jan 13, 2021)

    Release note: Upgrade Cadence server to the latest 0.16.x release prior to deploying this release.

    0.17 has a change that is not compatible with releases before 0.15. Upgrading from <=0.15 releases directly to 0.17 would cause StartWorkflowExecution and SignalWithStartWorkflowExecution APIs to return errors with workflow ID re-use scenario during the server upgrade. Please consider upgrade the Cadence server to the latest 0.16.x release before deploying this release.

    New Features & Improvements

    ElasticSearch

    4588ce4e Allow custom ES client options (#3790) 35c788c0 Allow disable Sniff for ElasticSearch (#3777) 2ea3ca81 Add username/password support for ElasticSearch 11250764 Support ElasticSearch v7 (#3700) 242db1d5 Refactor ElasticSearch visibility code path for multi version support (#3666)

    Multi-tenant Task Processing Improvements

    157ed7ea Improve retry policy for operations in task processing (#3765) c3f691b4 Enforce queue max poll interval correctly (#3693) 2c08e6ed Fix error handling for multi cursor timer queue look ahead (#3671)

    Graceful Domain Failover and Replication related improvements

    5e444be0 Add domain name tag in failover metrics (#3882) 7fda7c6a Refactor domain queue and add domain dlq size metrics (#3704) fcfe972d Backfill workflow version histories when resetting (#3742) 995c4dc0 Adding nil checks for version histories (#3724) 8055ae8c Service busy error will not put replication task into DLQ (#3697) 97d824e0 Update domain replication retry policy 17e62aab Update workflow execution with version histories check (#3679) 51355edb Remove replication state (#3649) 3ea959f0 Add replication task end to end latency (#3659) 10018231 Fix if the replication state is nil (#3645) 118ef839 Emit different metrics on pending active task redispatch (#3641)

    Scanner

    b12060de Run fixer workflow automatically (#3808) 94155bf7 Create domain filter for fixer workflow (#3771) 59d8af57 Disable history scanner by default and tune the default RPS 6a1c6a0a [scanner] add generic shard scanner (#3638)

    GRPC

    4c4bdf90 Regenerated internal types from latest package (#3854) bf8fd844 Regenerated internal types to include ActivitiesToDispatchLocally (#3812) dd44d4c3 Convert execution persistence types to use time.Time, time.Duration and internal types (#3775) 5e697d05 Internal types Ptr() helper (#3752) 1acd51b9 Use internal types for visibility store (#3749) 60b68d35 Switch matching service to internal types (#3744) 1e3278a2 Keep original enum order for internal types (#3745) 436bb562 History client internal types (#3712) f65640a4 Admin client internal types (#3710) 2cb47c1b Frontend client internal types (#3711) f235d63c Switch ElasticSearch validator to internal-types (#3728) 96b93795 Domains manager and store serialization refactor (#3723) 13a2eb9e History persistence store manager types (#3730) f3b9fdbe Matching client internal types (#3713) a9337097 Revert datablob change from manager/store for Visibility (#3716) e493f3cd Revert datablob change from manager/store for metaData store (#3706) 88fd2c55 Move serialization of datablobs to manager for shardManager (#3709) b9485f80 Thrift clients (#3695) d2289cea Map internal errors to thrift in thrift handlers (#3694) 7e033479 Fix lint warnings for generated internal types (#3689) 2bb5d47d Add thrift to internal error conversion mapper (#3696) aff5afab Separate thrift handler for frontend service (#3688) 81c18343 Separate admin thrift handler for frontend service (#3657) b7ceac2d Separate thrift handler for history service (#3646) ad06c810 Separate thrift handler for matching service (#3647) 85a2c9c1 Rename thrift visibility_timestamp to task_timestamp (#3680) 3f3f18a9 Add history types and update generation script (#3665) 22bf5774 Convert visibilityStore/manager to use internal types (#3656) 39dfa442 Convert task store/manager to use internal types (#3663) aa811045 Lean frontend Handler interface (#3658) 630357ce Replicator internal types (#3660) 9815a9c2 Add comments to correct linter to internal type getters (#3654) 273159d6 Add getters to internal generated types (#3650)

    Activity Local Dispatch

    05f76782 error check before return the ActivityLocalDispatchInfo (#3853) 31b59187 Add task token to activityDispatchInfo for worker (#3672) e5338924 Populate activityDispatchInfo with timestamps needed for local activity dispatch by worker (#3669) 6890e425 Update idls to use ActivityLocalDispatchInfo (#3668)

    Others

    fe9c07f9 Remove strict sanity check to allow reset 7374645c Make max activity schedule to start timeout for retry configurable by domain (#3878) cdb41e76 Fix DC redirect error overwrite (#3856) a43c6463 Fix NPE in DescribeMutableState (#3850) afa221ab Add logging/metrics for decision attempts (#3849) 66c2b124 Fix error handling when processing parent close policy (#3845) d3c9b9de Fix get raw history for transient decision (#3847) 1e4da1b9 Fix ES client config NPE (#3794) 03d7dfe7 Allow batch delete for several mutable state fields (#3760) c52c1c21 Fix update sticky task list in task store (#3761) f9bb732c Improve logging for dynamic config 11fde996 Remove wrong extra sslParam in Postgres TLS c4fe47b0 Enforce context in cassandra persistence implementation (#3751) 3eebd2ad Various fixes and improvements for reset and retry error, add integration test for reset f01f892c Increase default ListMaxQPS config 02da254d Add cassandra username and password config values to docker image 23d95d3d Improve logging when loading a dynamic config 4ffbfa62 Added cadence docs github repo to README (#3748) 048cac09 Allow dockerize to use config template from a different directory 94c05dd0 Persistence Error Injection Client (#3734) 52aa8af1 Refactor ES query validator to not modify requests (#3733) 94ecc07b Fix iterator context (#3743) 5679b159 Add warmup period to frontend service health reporting (#3731) (#3736) 1e7502ad Dynamic config for max user provided task list name (#3732) c11be59a Add ratelimiter to QueryWorkflow API (#3735) 11d9bd2c Update sqlx dependency to get rid of hacking fix (#3722) 7cd851d4 Improve reset CLI: add DecisionCompletedTime as resetType and also provide … (#3667) 0727b177 Don't retry when reset to a middle of a batch to save perf (#3721) 6e5f9ece Reset allows skipping signal reapply (#3715) d47b0d18 Make id length dynamic config per domain (#3705) 923b7a72 automate creating docker images and upload to dockerhub on release (#3703) 291897c0 Improve Error Handling For Cassandra Persistence Implementation (#3699) 3f47f9cb Fix panic for concrete execution checks (#3698) 14c153be Expose pending decision task info (#3691) e0f03116 Use Now as timestamp for all transfer and replication tasks (#3684) a061070f Fix and improve archival query parser error messages (#3681) 10a84f31 Notify new tasks when persistence operation timeout (#3678) 3e32b943 Add workflow type tag when emitting workflow completion metrics (#3670) 6eb918ea Support TTL where needed for SQL plugin interface (#3664) 0568fa9e Only query on sticky task list when domain is active (#3661) 4281089a Enforce persistence context timeout in application layer: Part 5 (#3653) 3ab327b5 Refactoring Cassandra domain persistence manager for NoSQL support d063f27a Refactor visibility Persistence API and Cassandra implementation 0ea68b8a implement postgres support for TLS (#3488) ba0eacbd Enforce persistence context timeout in application layer: Part 4 (#3643) e1126ac7 Fix for unifying shard rangeID (#3651) 9a787f72 Unify shard rangeID column and field in Cass persistence (#3632) da72f32b Enforce persistence context timeout in application layer: Part 3 (#3631)

    Misc.

    958b939c Update docker for 0.17.0 release 8f88cb57 Pin IDL submodule to commit from master branch (#3683) daba348a Add correct license header to attribute to temporal and update license generation tool (#3674) 09267d68 Update CONTRIBUTING.md to include make fmt command f4a9df2e CLI release 0.15.0

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(58.50 KB)
  • v0.16.0(Dec 11, 2020)

    Breaking Change

    This release contains a breaking change in workflow metadata. This change has been enabled since 0.14 release. If your workflow could be open for 6+ months or you upgrade to this release from 0.13 or below, please follow the migration instruction.

    Breaking Change on config for MySQL/Postgres

    It's required to add

            encodingType: "thriftrw"	
            decodingTypes: [ "thriftrw" ]
    

    to persistence configuration like in this example

    Note that this requirement is removed in later in 0.18.

    Schema Change

    • Cassandra cadence keyspace update from v0.29 to v0.30

    New Features

    ff47f258 Add task token to activityDispatchInfo for worker (#3672) 12703dc7 Populate activityDispatchInfo with timestamps needed for local activity dispatch by worker (#3669) 5b455a3b Update idls to use ActivityLocalDispatchInfo (#3668)

    Improvements

    d4ec2e20 0.16.x compatible with future releases (#3839) f56ea60b Add log/metrics for decision attempts and force schedule new decision (#3840) 40ab8cc4 Patch a change to support reset 2dc workflow (#3778) 7e54e713 Ignore workflow without version histories (#3773) 046ec4ae Improve retry policy for operations in task processing (#3765) 09ad2939 Backfill workflow version histories when resetting (#3742) 2c0c3a91 Dynamic config for max user provided task list name (#3732) b8aeca94 Add warmup period to frontend service health reporting (#3731) a5b55207 Make id length dynamic config per domain (#3705) f440ca60 Service busy error will not put replication task into DLQ (#3697) 0664a6c3 Update domain replication retry policy bb7ad07f Notify new tasks when persistence operation timeout (#3678) 6e20d59f Add workflow type tag when emitting workflow completion metrics (#3670) efcbcc81 Only query on sticky task list when domain is active (#3661) d3a16468 Revert "Convert metadataStore/manager to use internal types (#3615)" e6ff5fd8 Revert "Pin gocql version"

    Bug Fixes

    0e363f8a Update nil check (#3791) 7c466a82 Fix iterator context (#3743) 08ecbdf0 Adding nil checks for version histories (#3724) a175e443 Fix panic for concrete execution checks (#3698) 472509fc Enforce queue max poll interval correctly (#3693) f1ae5a7e Fix error handling for multi cursor timer queue look ahead (#3671)

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(49.00 KB)
  • v0.15.1(Oct 22, 2020)

    Bug Fix & Improvements

    ea865f78 Fix if the replication state is nil (#3645) 6960e9b7 Fix NPE for failover query cd103de7 Add operator to admin failover 38e0451f Move batcher to new domain 62292cec Update failover default settings 295c897a Fix managed failover list

    Misc.

    ede38f04 Update docker for 0.15.1 patch release 77af12d7 Revert "Pin gocql version" 3a633f14 CLI release 0.15.0

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(46.50 KB)
  • v0.15.0(Oct 8, 2020)

    Schema Change

    • Cassandra cadence keyspace update from v0.28 to v0.29

    New Features

    Multi-tenant Task Processing Improvements

    b24ea121 Enable priority task processor by default (#3571) 006db8b2 Persist and load multi-cursor processing queue states (#3480) 236b644d Multi-cursor Queue Improvements Part 2 (#3518) 57a20dc5 Multicursor Queue Processor Bug Fix (#3508) 4d4482eb Add multicursor processing queue related metrics (#3510) fb076fb6 Multicursor Queue Processor Improvements (#3509) 728d1a07 Start queue processor before failover callback registration (#3494) 11618394 Enable processing queue split policy by domainID (#3486) fa574603 Introduce per domain metrics for task processing. (#3467) 65a686d5 Admin describe queue state command (#3462) 85e0cb1f Add queue action for getting processing queue states (#3436) 3e8f6a5b Fix multi-cursor queue polling logic (#3420) d0963172 Fix task attempt metrics in priority task processor (#3428) 50ca22b0 Add Reset Queue Command (#3414)

    Graceful Domain Failover and Replication related improvements

    fc856d5a Update shard info when adding failover marker (#3507) f8001425 Ignore reapplication if the domain is pending active (#3502) 638a6203 Clean up kafka replicagtion in worker (#3493) 0445e3ee Allow DLQ cli use a range of shard ids (#3481) 33affc32 Enforce re-replication context timeout for standby tasks (#3473) acb6b62c Add persistence layer for multi-cursor queue processing (updated) (#3468) 4ac545c0 Replication task generation delay (#3465) 6b51462a Add a default timeout for get replication messages API (#3459) c4b824ac Remove rpc replication migration features (#3461) ed77ef1d Fix message for admin DLQ merge command (#3460) e3962368 Adding delay on replication task processing (#3458) 5d12110a Adding replication task processing metrics (#3452) 60c3463a Make the failover end time check compatible with original value (#3450) 01d2d1a4 Fix get dlq size NPE (#3422) 121ef1e6 Bug fixes for failover (#3415)

    Managed Failover

    554b8bc8 Add Managed Failover (#3558)

    Scanner

    ea62bcc1 Disable concrete execution scanner by default (#3438) 6b64e4cc [Scanner] handle current execution to read from blobstore (#3435) e284980f [Scanner] Fixed missing scan type param in activities (#3434) 42444dc0 [Scanner] Use CurrentExecution instead of base one (#3421) 6aca6385 [Scanner] Register current execution scanner (#3418) e179113e [Scanner] Use constant for current execution run id (#3419)

    GRPC

    c8b2b4c6 Finish proto definition for persistence impl (#3528) 5616dac5 Define proto blobs for executions, child executions and history tree (#3521) 7223ddf2 Define protoblob for activityInfo and other supporting types (#3520) 87cf4a88 Define domains protos (#3512)

    Bug Fix & Improvements

    e3f0b408 Add cluster name filter (#3561) 3a15e73e Emit metrics on customer ids being too long (#3529) 280dba25 Add failure metrics for failover (#3526) 8451d1f8 Use a limited context timeout to get current exec lock (#3515) 0c16ca1b LimitExceededError should be non-retryable (#3511) a054dbed Split reconciliation/common (#3513) 673750a5 Emit active_cluster metric during domain cache update (#3517) 3b56ad7e Fix NDC resetter persistence bugs (#3500) d3cab3ea k8s: fix cassandra-tool env key conflict with k8s (#3505) 1efa69b5 move retryer to persistance package (#3497) bb7046bd Remove kafka replication from history and cli (#3503) 0dd015ea Add domain tag to history query metrics (#3504) b7b9008e [SQL]Fix upsert SQL template for Postgres plugin (#3498) 7acfe132 Do not extend activity expiration time (#3489) 007716d9 Integrate current execution check with replication resender (#3487) 6e0e0f18 Extend activity ScheduleToClose timeout to expiration time (#3485) 63e8bacf Fix indexer to filter out invalid msg (#3479) 3a3ba20f Reduce log verbosity and add message to logs that didn't have one (#3478) 6e8cdeec Cap activity ScheduleToStart timeout when large retry expiration time is specified (#3470) 570e6846 reverted import groups (#3476) dcfa0a30 Fix indexer retry on bulk commit failure (#3474) 5535d29f Add admin list domain command (#3472) 4f49f61c Integrate current execution check with replication resender (#3466) 15eed397 add tests for getRawHistory (#3469) 0325ee57 fix transient decision serialization for getRawHistory feature (#3463) f5b91c1e Slow down decision tasks after failure (#3447) 07a995fa Update metrics cache to be unblocking (#3443) fc2e1673 Fix shard ID filter (#3451) cc2f5675 Enforce timeout for getting workflow execution in task processing (#3442) aa110880 Update the config to be able to set the value by shard (#3441) 92232ab5 Reduce context timeout for transfer tasks (#3437) db444cfa Fix sticky decision keeps failing on ConditionFailedError (#3423) dee9745e Drop stuck close execution transfer task (#3240) (#3429)

    Misc.

    73df4f41 Update docker for 0.15.0 release 84631abd Pin gocql version e813e261 Update slack invitation link 3c206918 Go mod tidy (#3523) 2fc957e9 Improve developer contribution guide for Postgres development (#3495) 0039b4bf Fix lint errors (#3455) 7e8b7ef8 CLI 0.13.0 release (#3453) 68a0fe28 remove idl changes (#3444)

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(46.50 KB)
  • v0.14.2(Sep 22, 2020)

  • v0.14.0(Sep 14, 2020)

    Schema Change

    • Cassandra cadence keyspace update from v0.27 to v0.28

    New features

    Multi-tenant Task Processing Improvements

    • 4f3374f1 Add filter for pending active task to redispatch (#3279)
    • 34bac76b Priority Task Processor Improvements (#3284)
    • da4cffa3 Transfer queue processor base V2 (#3278)
    • c854872e Wire up multi-cursor transfer queue processor implementation (#3285)
    • 2db63eaa Enforce time resolution for timerMaxReadLevel (#3411)
    • d9dc526b Task Redispatcher (#3406)
    • b0b0bbb5 Add timers subcommand to admin CLI (#3404)
    • 84203093 Refactor queue processor base implementation (#3380)
    • 582d497b Improve processing queue split policy (#3287)
    • 9ffa5e4b Timer queue processor base v2 (#3306)
    • dd9cb493 Wire up multi-cursor timer queue implementation (#3318)
    • 27dcc419 Wire up multi-cursor queue split policy (#3326)
    • 034959e0 Add back pressure mechanism for multi-cursor queue (#3338)

    DB Scanner

    • a1a14830 Scanner impl (#3286)
    • 11c17f98 Add invariant manager (#3263)
    • b65e13f2 [Scanner] handle current execution to read from blobstore (#3435)
    • 3f323315 [Scanner] Fixed missing scan type param in activities (#3434)
    • 25ff7930 [Scanner] Use CurrentExecution instead of base one (#3421)
    • 49f30ca2 [Scanner] Use constant for current execution run id (#3419)
    • 0e288fbb [Scanner] Register current execution scanner (#3418)
    • 78031ab8 [Scanner] Add persistence APIs for current execution (#3416)
    • 8904368e [Scanner] Add concrete execution check for current execution (#3409)
    • 293d5c2e Extend execution scanner framework with an entity type param (#3402)
    • 6a238a74 Run concrete executions scanner always (#3370)
    • 779b711f Scanner and fixer workflow implementations (#3307)
    • af2c994e Remove dependencies between invariants (#3316)
    • 754870fa Size reduction of execution scanner workflow (#3313)
    • 4aa034ac Add determining invariant from invariant manager (#3320)

    Replication

    • e3f42488 Fix get dlq size NPE (#3422)
    • 99e0a098 Failover marker persistence (#3274)
    • dcb6909a Integrate current execution check with replication resender (#3487)
    • 00c60dfd Replication task generation delay (#3465)
    • 2e587380 Add a default timeout for get replication messages API (#3459)
    • 54b47006 Adding delay on replication task processing (#3458)
    • 7fcf1f7c Adding replication task processing metrics (#3452)
    • 7dbbfd1a Notify failover marker api (#3296)
    • 514bc734 Add processor to handle graceful failover timeout (#3277)
    • 45096abd Add previous failover version in domain v2 table (#3308)
    • dd168b1e Add config to enable/disable worker replication (#3368)
    • 5d317252 Handle shard lose during inserting markers (#3328)
    • 009d5c36 Add failover marker coordinator (#3288)
    • fc543b8b Insert failover when domain moves from active to passive (#3290)
    • 19a1ae86 Wire up update previous failover version (#3321)
    • 0474c64a Redispatch task on passive processor during failover (#3333)
    • 1e8db70f Persist failover marker in shard info from replication queue (#3304)
    • 92d72301 Wire up DLQ ack level in shard info (#3366)

    Domain tag

    • f4f7ab22 Add domain tag to history query metrics (#3504)
    • 8de8f993 Introduce per domain metrics for task processing. (#3467)
    • a14011e7 Improve domain tagged metrics in priority task processor (#3379)

    Bug Fix & Improvements

    • aa6b8a97 Update docker for 0.14.0 release
    • f3b841b9 Allow DLQ cli use a range of shard ids (#3481)
    • 7376035c Fix 0.14 build error
    • d4446815 Fix indexer to filter out invalid msg (#3479)
    • c747a85c Fix indexer retry on bulk commit failure (#3474)
    • 36b19d81 fix transient decision serialization for getRawHistory feature (#3463)
    • 3a315e4a Fix sticky decision keeps failing on ConditionFailedError (#3423)
    • 82599585 Reduce log verbosity and add message to logs that didn't have one (#3478)
    • 456ea425 Fix shard ID filter (#3451)
    • e3f42488 Fix get dlq size NPE (#3422)
    • cba5e5f0 Bug fixes for failover (#3415)
    • 6c18bc6a show timers distribution on a histogram (#3413)
    • 713a7a9a Fix failover marker update lock (#3412)
    • 624862f6 Reduce standby task attempts (#3410)
    • 18b73147 Adding metrics for failover marker latency (#3408)
    • 8da382dd Fix visibility archival canary metrics (#3407)
    • 080db04d Fix returned error in update wf when shard lost (#3405)
    • b21d93f4 kafka replication should be enable by default (#3403)
    • fe18264c Fix some minor error messages
    • 078cdb41 Remove executable permission from JSON files (#483)
    • 5839172b Fix describe shard issues
    • 6b109f89 Create CLI command to describe shard by id (#370)
    • d99fb200 Fix cli watching history times out after 2 minutes (#336)
    • 2c2b4844 Create utility methods for scanner shard struct (#3400)
    • 9a04e001 Skip adding DLQ message if the shard is closed (#3401)
    • a21d455d Add logs and metrics for multi-cursor queue (#3381)
    • ae14d477 Call cancel on context to prevent memory leak (#438) (#3398)
    • 5791f075 Move scanner common code to common folder (#3390)
    • 891e5eda Add workflowID runID to frontend API error log (#3382) (#3391)
    • 78168f2c Fix error import (#3396)
    • a24a6c0d Increase timeout for workflow start to close on scanner activity (#3395)
    • 13ed4583 Fix Get DLQ if the workflow is archived (#3394)
    • a1aad872 Emitting metrics if DLQ is not empty (#3389)
    • de1ad6dc Add retries to range renewal (#3388)
    • 5aac215e Add warn logs for shard closures (#3387)
    • 5cf711c9 Make read history branch page size configurable (#3385)
    • c86d8da5 Fix task redispatch logic (#3384)
    • 85cd2264 Add shard distribution metrics and query (#3377)
    • 598c5073 Update replication path to use lazy retry on service busy error (#3376)
    • 2911586f Emit metrics with domain tag in priority task processor (#3375)
    • 19d1b496 Update worker replication config (#3373)
    • 129b62e1 Fix search attribute validation error on bool/double type (#3372)
    • f8c60c18 Fix start workflow execution expiration time (#3371)
    • 686f8122 Fix task agressive retry with TwoPhaseRetryPolicy (#3369)
    • 3dfddc50 Fix task processing retry policy (#3367)
    • 56a510e1 Add region filter for cassandra config (#3363)
    • abd21dcb Fix history resender source cluster (#3365)
    • 42b29a8d Update cadence-sql-tool README (#3362)
    • 0fae61c5 Improve task latency metrics (#3364)
    • 6fcee79e Replication metrics (#3361)
    • b5ce9c7f Fix handling of CurrentWorkflowConditionFailedError when create wf (#3349)
    • fa3155e7 Fix redispatch queue initialization (#3359)
    • 93671976 fix cli argument for ndc workflow resend (#3357)
    • 875e8ad0 Improve task redispatch timer (#3355)
    • 45ac1370 Update replication ack level if response has no task (#3356)
    • 33e4a75e Removed unused metric scopes for event cache (#3354)
    • b0584493 Add ability to disable shard level worker pool (#3353)
    • b78a29a4 Fix dynamic config map property conversion func (#3352)
    • e984b002 Fix retry and metrics on context error (#3327)
    • 30bd2b52 Add header options for starting workflow via CLI (#2862) (#3341)
    • fb6e4e01 Update replication retry policy (#3346)
    • 208c34f4 Move resetor to reset package (#3340)
    • b7f42fad Fix history task replication DLQ retry policy (#3343)
    • e050be35 Fix ListTaskListPartition command (#3342)
    • e2401c41 Remove -i go build flag (#3128) (#3335)
    • 50686653 Add retry options for starting workflow via CLI (#3289) (#3330)
    • c1cf2ca4 Add host level task worker pool (#3331)
    • efb2e7c6 Removed unused event cache API (#3337)
    • f7683cbe Remove safety check for event global cache (#3336)
    • a9e4715e Pin previous failover idl (#3317)
    • 4b8f50ab Fix NPE for reset (#3309)
    • 3c0597e9 Misc Renaming (#3310)
    • 12c258a1 Added metricScope cache implementation (#3299)
    • f333dff5 Fix fossa script (#3312)
    • 62152901 Fix task processor shutdown logic (#3311)
    • eca98ba4 Fix remote sync match error metrics (#3305)
    • d787cccd Fix task loading for multi-cursor transfer queue processor (#3298)
    • 526a96d3 Make event cache size based (#3294)
    • f8c0e931 Move PR template (#3293)
    • 950591c5 Add fixer impl (#3291)
    • 55bf6dae Implement simple RWMutex cache to be used in domainCache (#3273)
    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(46.50 KB)
  • v0.13.0(Jul 7, 2020)

    Schema Change

    • Cassandra cadence keyspace update from v0.26 to v0.27
    • Cassandra cadence-visibility keyspace update from v0.4 to v0.5

    New features

    Multi-tenant Task Processing Improvements

    • d564e84c Fix task processing retry policy (#3367)
    • 4f84809e Improve task redispatch timer (#3355)
    • 28e44858 Add ability to disable shard level worker pool (#3353)
    • d146aa31 Add host level task worker pool (#3331)
    • 79606aa3 Priority Task Processor Improvements (#3284)
    • 1bef70a3 Implement task processing queue collection (#3260)
    • c43b6dca Implement Processing Queue Split Policy (#3232)
    • fef64d7e Multi-cursor processing queue implementation (#3214)
    • 0e2df8ab Implement domain filter for multi-cursor queue (#3207)
    • b365258b Add interfaces for multi-cursor queue implementation (#3194)
    • ffc2f559 Add back pressure logic for task loading (#3160)
    • 9b02fecc Fix redispatch queue nil pointer exception (#3156)
    • 97e0c833 Wire up priority task processor implementation (#3146)
    • 4d80f0b4 Task redispatch queue (#3124)

    Replication & Graceful Failover

    • 514d7657 Wire up DLQ ack level in shard info (#3366)
    • 610b15df Replication metrics (#3361)
    • 0a115694 Update replication ack level if response has no task (#3356)
    • 82294e6b Update replication retry policy (#3346)
    • 8e542c05 Adding failover marker replication task in thrift and persistence struct (#3270)
    • 3aab1315 Rpc replication ack level update (#3266)
    • cd7ec202 Check on-going failover across clusters (#3206)
    • 0f34983d Fix domain replication queue cleanup query (#3259)
    • afcc51ef Add flag for replication cleanup process (#3241)
    • 06d551b1 Adding design doc for graceful failover (#3129)
    • ae834c07 Update isDomainActive condition to honor pending active statue (#3176)
    • 99b5cb92 Support graceful failover in CLI (#3205)
    • 63015498 Domain failover update (#3164)
    • 5a1f8d30 Add failover end timeout in domain data (#3137)

    DB Scanner

    • 7efabca3 Run concrete executions scanner always
    • ea5ba838 Add determining invariant from invariant manager (#3320)
    • ec9fd415 Size reduction of execution scanner workflow (#3313)
    • ff870654 Remove dependencies between invariants (#3316)
    • f6cffc73 Scanner and fixer workflow implementations (#3307)
    • a956023d Add fixer impl (#3291)
    • e61348ba Scanner impl (#3286)
    • e40e8570 Add invariant manager (#3263)
    • bcc0d8f2 Add scanner invariants (#3257)
    • 2bf7e39a Make output of file based blobstore human readable (#3246)
    • c9d48377 Add iterators and writers for persistence and blobstore for scanner workflow (#3234)
    • 6a6f209f add interfaces and types for scanner and fixer workflow (#3226)
    • 848e34fa Add iterator for buffered writer (#3224)
    • 9f15885c Add blobstore buffered writer (#3219)
    • 3b88ac64 Add blobstore interface to bootstrap params and implement filestore (#3210)
    • b98988c3 Close iterator on ListConcreteExecutions (#3187)
    • d2054fee DB scan admin command retry db operations (#3184)
    • e034cb05 Check MS still exists before checking history scan invariant (#3178)
    • 7f1339e9 Add admin db clean command (#3174)
    • 7fe008ec Db scanner additions (#3172)
    • aefcfeef Add database admin scan command (#3165)

    Refactor

    • cfb36930 Refactor mutablestate builder part 1 (#3238)
    • d6cbc1a1 Move NDC related code to ndc package (#3213)
    • 24aa94da Move replication related code to subfolder under history (#3204)
    • 8f775697 Replace context in historyEngine (#3203)
    • 8e15b083 Refactor start and signalwithstart logic (#3201)
    • d83a2ba8 Decompose history service logic into separate packages (part 4) (#3197)
    • 8022ac62 Refactor get history API (#3196)
    • 9e6ce72d Refactor db scan checks and include in delete (#3193)
    • 5ba2353c Refactor progress report and include metadata about open executions (#3189)
    • 830974dd Decompose history service logic into separate packages (part 3) (#3190)
    • 90df514d Decompose history service logic into separate packages (part 2) (#3186)
    • e62d76ef Move history service logic into separate packages (part 1) (#3180)
    • 0e8aeccc Refactor frontend handler (#3142)

    Bug Fix & Improvements

    • 1439249c Update docker for 0.13.0 release
    • b276ff4a Fix search attribute validation error on bool/double type (#3372)
    • c27734c6 Fix start workflow execution expiration time (#3371)
    • 04d26436 Fix legacy reference
    • 70c28817 Fix task agressive retry with TwoPhaseRetryPolicy (#3369)
    • b066ed15 Fix history resender source cluster (#3365)
    • 14e45bd4 Improve task latency metrics (#3364)
    • 15f0e3ae fix cli argument for ndc workflow resend (#3357)
    • 9dc6c9ee fix unit test failure introduced by cherry-pick
    • ef13c65b Fix dynamic config map property conversion func (#3352)
    • d57a7ce2 Fix history task replication DLQ retry policy (#3343)
    • 6830be1c Fix task processor shutdown logic (#3311)
    • 61126d19 Remove debugging log from add task APIs
    • 1579105b Fix NPE for reset (#3300)
    • 712a1498 Add log in matching (#3297)
    • 43fae732 Address cherry-pick errors
    • ab20fce8 Drop stuck close execution transfer task (#3240)
    • 21d02455 Remove domain tag in task processing
    • 75c5d66d Pin gocql version
    • 561e01e5 easy: Cleanup the go.mod/sum files (#3275)
    • 1f3404b4 Fix shard instability (#3271)
    • 74b40ede Make event cache global (#3265)
    • 72f9705d Implement schema squashing (#3253)
    • c4c485ea Add issue report and feature request templates (#3268)
    • 6d2cfab6 Update contributing instructions (#3242)
    • af7583c0 Fix list task list partition issue in matching (#3256)
    • 5321680f Fix reset reapply (#3252)
    • ec36e6a4 Populate history response to fix NPE on client side (#3255)
    • 83809d81 Better postgresql test defaults on OSX (#3244)
    • df824256 address comments (#3248)
    • 4e025cff Update license file and some small code cleanup (#3239)
    • 4fb1e37b Update slack chat badge (#3245)
    • 1ed8702c Add resend context timeout for ndc resender (#3247)
    • 93136140 Add new dynamic config filter on shard level (#3243)
    • 02094966 Generate and Resend history v2 replication task via CLI (#3233)
    • 3deebda4 Prevent git from ignoring "cadence" directory (#3236)
    • 7178f2a5 Add tag and dynamic config for authz (#3237)
    • f48e723e Add roadmap page (#3200)
    • e36e80b8 Remove unused default IDReusePolicy for SignalWithStart (#3229)
    • 2082e055 Fix NPE for task when global domain disabled (#3228)
    • f38cfde6 Support NDC raw histroy in message parser (#3227)
    • fdc989c2 Add TerminateIfRunning to WorkflowIDReusePolicy (#3215)
    • e236eb6b Fix nil pointer with struct pointer reference (#3222)
    • 4a6daab1 Update CLI version to 0.12.0 (#3221)
    • 72f37926 Fix metadata replication task with NDC (#3218)
    • a8f7c495 Add feature flags for RPC replication migration (#3216)
    • 63e8f5e0 Enable NDC by default (#3212)
    • 6d1a17ae Add JavaSDK client version to support raw history (#3209)
    • 27af8634 Fix batcher EntityNotExist check (#3170)
    • ccd1fa0c Fixes start.sh to add connect attr if needed (#3158)
    • cda64030 Check go client version for raw history query backwards compatibility (#3199)
    • 8b703e46 Rate limit domain cache refresh (#3195)
    • 5945b667 Fix panic on get history API (#3188)
    • f4d75306 Start cadence-server as pid 1 in the auto-setup container (#3175)
    • 45627d19 Allow empty postgres passwords (#3177)
    • 2722cd6a Use version history to get branch token as fall back (#3185)
    • 651a26b2 Add task list to CLI search workflow output (#3183)
    • 91d9d86e matching: per task list metrics (#3155)
    • c842f791 Add execution per shard stats (#3179)
    • 58c0ccf7 Add tasklist to visibility (#3171)
    • 62ef53da Fix canary domain creation (#3173)
    • b5974d51 Add global ratelimiter for persistence (#3169)
    • d098eac9 Add feature flag to not fail in flight decision (#3167)
    • 315ce059 Use reader in admin kafka with 3mb buffer size (#3163)
    • b4c1a8bb Add global ratelimiter for frontend API (#3161)
    • 0a7f74b8 Fossa integration (#3162)
    • c23cd657 Improve filestore query parser for treating more values as valid close status (#3159)
    • 0976e697 Fix admin remove task command for timer queue (#3157)
    • a3e60fac Change queue message id to big integer in Cas (#3149)
    • daa89985 Add admin failover for managed domains (#3154)
    • 66e4d0df Add additional logging and metrics around size/count limits (#3147)
    • 882f6808 Add metrics to AccessControlledHandler (#3145)
    • a933ae05 Log workflow info also when visibility data goes to DLQ (#3138)
    • 9b46c2e5 Add autofowarding of consistent queries (#3140)
    • 12ca4cd7 Fix visibility archival config for docker (#3143)
    • ca46e6b0 Validate search attribute value (#3135)
    • a88b972d Gracefully handle polling history on standby (#3139)
    • 9ddcb082 First pass at graceful shutdown handlers (#3134)
    • a5111a6c shardController: improvements for graceful shutdown (#3136)
    • 31d26194 ringpop: update hashring immediately on ring change (#3130)
    • 8bcbb4f0 Update IDL submodule (#3133)
    • c7ba8468 ringpop: add method to selfEvict from ring (#3132)
    • 39ce9248 Add dedup logic for standby activity heartbeat timer creation (#3131)
    • da435390 Adding json tags for ShardInfo struct to reuse for docstore (#3127)
    • 74c2c691 Record error info for retried activities (#1873) (#3116)
    • 1e52f969 Change error type on query before first decision task (#3121)
    • 86ae10c9 Add context in history resend (#3122)
    • ee3c672a Get raw history compatibility (#3111)
    • a015671e Update sync shard interval to 5 mins (#3119)
    • e3eab7fc Fix archival handled requests not match pumped requests (#3117)
    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(46.50 KB)
  • v0.12.0(May 27, 2020)

    Schema Change

    Cassandra cadence keyspace update from v0.23 to v0.26

    New features

    Multi-DC improvements and kafka deprecation (in progress)

    • b9025366 Rpc replication ack level update (#3266)
    • a35fb5a5 Add new dynamic config filter on shard level (#3243)
    • b51ba737 Add feature flags for RPC replication migration (#3216)
    • 1399966e Add flag for replication cleanup process (#3241)
    • c5f52766 Add flag to skip reapplication filter by domain (#3249)
    • 979324ba Add resend context timeout for ndc resender (#3247)
    • eb571107 Add context time into history resend with dynamic config
    • 1d866ead Add replication task history v2 to the kafka producer (#3101)
    • 6f31fd97 Add operation APIs for history replication DLQ (#3019)
    • 3108d70a Add Domain Replication DLQ (#2964)
    • d5728936 Add API to fetch replication message (#2960)

    Multi-tenancy task processing (in progress)

    • 0381863c Host Level Queue Task Processor (#3084)
    • 32aa76ab Non-blocking submit for Task Scheduler (#3081)
    • 1965abda Implement queueTask Interface for Timer and Transfer Task (#3077)
    • 14c09b8d Separate logic for transfer task execution and queue management (#3045)
    • d613cde3 Task Priority Assigner (#3023)
    • fcd50fd8 Separate logic for timer task execution and queue management (#3039)
    • 55207c84 FIFO and WRR Task Scheduler (#3017)
    • 1d9a7d7b Parallel Task Processor (#2994)

    Other misc features

    • 10fc818c Add Activity E2E latency metrics (#3108)
    • e1f509e3 Gcloud storage visibility query (#3076)
    • ac29268d Implement multipart s3 history archiver (#3080)
    • dbbf8377 S3 visiblity store - Add ability to query WorkflowTypeName (#3072)
    • 9975e7d8 Skeleton of executions scanner (#3055)
    • 4b155420 Add Admin API to refresh all workflow tasks (#2984)
    • 72a84fd9 Add DLQ Admin APIs and Integrate with CLI (#3010)
    • 0dee0ba9 Archival gcloud multipart (#2978)
    • 23420922 Implementation of s3 using new archival interface (#2991)
    • 95786aaf Add support for custom mysql tls configuration (#2913)

    Stability and reliability improvements

    Global rate limiting for persistence and frontend APIs

    • 2def8e84 Add global ratelimiter for persistence (#3169)
    • ad51b7c0 Add global ratelimiter for frontend API (#3161)

    Graceful shutdown of services during deployment

    • eaa978fe First pass at graceful shutdown handlers (#3134)
    • b9fc657b shardController: improvements for graceful shutdown (#3136)
    • 81e62c53 ringpop: update hashring immediately on ring change (#3130)
    • 609e999c ringpop: add method to selfEvict from ring (#3132)
    • 873f32c0 Start cadence-server as pid 1 so it can capture and handle shutdown signals. (#3024)-

    Support getting raw history for long poll

    • 61cf85ac Implement GetRawHistoryAPI for long poll (#3028)
    • 0db27e79 Get RawHistory API simple implementation (#2955)

    Mutable State Checksum

    • 44cdb753 mutable state checksums part#2: persistence changes (#2967)
    • d6959153 mutableState checkums part#1 (#2941)

    Other notable changes

    • af5440b8 emit domain specific metrics in task processing
    • 29c91645 Implement simple RWMutex cache to be used in domainCache (#3273)
    • fab7ce70 Fix shard instability (#3272)
    • 7320af09 Add more logs for shardItem lifecycle (#3269)
    • 25bb63e0 Fix domain replication queue cleanup query (#3259)
    • 9821fb0e Cherry pick reapply fix
    • 609149ff Drop stuck close execution transfer task (#3240)
    • 6be19bda Add tag and dynamic config for authz (#3237)
    • e1cc77b4 Fix NDC metadata task (#3217)
    • f36c9e11 Remove domain tag in task processing
    • 7fa33dc5 Add feature flag to not fail in flight decision (#3167)
    • 7ff6106c Add additional logging and metrics around size/count limits (#3147)
    • c3e23457 Fix panic on get history API (#3188)
    • 6fb69099 Record error info for retried activities (#1873) (#3116)
    • 19c32ada Fix admin remove task command for timer queue (#3157)
    • 35609929 Validate search attribute value (#3135)
    • 11a181df Add dedup logic for standby activity heartbeat timer creation (#3131)
    • 91d3b04a Change queue message id to big integer in Cas (#3149)
    • 74e26766 Update sync shard interval to 5 mins (#3119)
    • 2bba3989 Fix archival handled requests not match pumped requests (#3117)
    • 3973b054 Add filter to not reapply event with the same version (#3114)
    • 36a48c3e Cleanup PersistenceTestCluster interface (#3112)
    • bb7d24db Check correct configuration field when validating visibility store (#3110)
    • 9bd2d87b CLI: list-partition fix cli flag (#3094)
    • b9c6f9b5 Switch to using readWriteMutex for lockableQueryMap (#3107)
    • 84c85cd0 Fix SignalExternalWorkflow input should be optional (#3057)
    • d49eec3b matching_scalable_tasklist: bug fixes (#3102)
    • bbaf49f2 Update switch statement to prevent unsupported task type (#3105)
    • 7e1eb3b1 Update last first event id in each batch (#3099)
    • 7b0c2a55 Adding QueueType and json tags (#3090)
    • ccafe5b8 Add detail messages for retry error v2 (#3089)
    • 16016303 Fix Kafka parser regex (#3085)
    • b196c3fe Race condition in server start up logic #2874 (#3082)
    • 7c07af4f Add metrics to domain and history DLQ (#3053)
    • daf446ff Add ServerName to TLS config. (#3066)
    • 20a6350a Add an entry point for the custom datastore implementation (#3049)
    • 287f8b54 Add canary test for visibility archival (#3059)
    • f0d5b1ba dynamic config: optimize to reduce heap allocs (#3043)
    • 50909e78 fatal_log: modify error message for clarity (#3050)
    • bd34a55b Allow for access of domain cache without deep copy (#3047)
    • cb5da71e Remove EmitMetric option from the CLI #2380 (#3029)
    • 36d7dd32 Dedup activity heartbeat timeout timer task creation (#3032)
    • 4c995060 Fix admin cli missed type in add search attribute (#3027)
    • 00961ac3 Add config option to add prefix to emitted metrics (#3021)
    • 84db9c21 Add logging when dumping in dlq #3004 (#3022)
    • d5db2f40 Increment readLevel when skipping over expired tasks (#3020)
    • e97f3e93 Log domain/workflow/run ids for non-deterministic error from RespondD… (#3012)
    • 64afbc6d Update logging tag with the correct component (#3016)
    • dc5431ec Fix indexer not retry on error code 500 (#3015)
    • fbdb15d5 Fix go get error on go.uber.org/atomic (#3009)
    • 613430db Fixes typo in config file (#3011)
    • 4578ff8a Add domain tag to processed tasks metrics (#3000)
    • 687029c8 Fix listarchived cli command (#2998)
    • ee3d5f45 Improve list workflow date range args (#825) (#2990)
    • 0c857aa5 Matching use non retry matching client (#2993)
    • f9613b6b Improve dockerfile (#2980)
    • 30702321 queueProcessor: fix write on closed chan panic (#2986)
    • f55620d6 Move replication context timeout to dynamic config (#2979)
    • afe9717f Wire up domain replication queue cleanup coroutine (#2963)
    • 48aa62dc Make Canary Runnable (#2959)
    • f4648ae2 Cli command for ListTaskListPartition API (#2946)
    • 7d1f1c4b Eat operation not support error for change version on DB (#2950)
    • 7cd17246 Better handling Cassandra data resurrection issue (#2949)
    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(46.50 KB)
  • v0.11.0(Feb 15, 2020)

    Please upgrade your Cadence server to add the new default search attribute:

    cadence admin cluster add-search-attr --search_attr_key BinaryChecksums --search_attr_type 1
    
    

    Schema version check is enforced, please use the sql tool to add schema enforcing tables. For MySQL:

    ./cadence-sql-tool --ep $SQL_HOST_ADDR -p $port --plugin mysql --db cadence setup-schema -v 0.3
    ./cadence-sql-tool --ep $SQL_HOST_ADDR -p $port --plugin mysql --db cadence_visibility setup-schema -v 0.1
    
    

    NOTE: Assuming you are at 0.10.x right now, the cadence schema version should be 0.3 and visibility should be 0.1.

    New Features related

    8f4ed1c1 Cadence authorization (#2903) bd1f1d20 Expose NDC doc (#2915) 97c01c95 Sticky query support (#2899) cba849df Implement Postgres SQL Plugin (#2889) ccdf53d4 Add Postgres configuration in docker configs (#2894) 0d160a9d Support Postgres in SQL CLI and make SQL pluggable for any database (#2828) 88c6d1ab Adding auto-reset points to visibility record (#2830) 3a27d383 Update archival development guide for visibility archiver (#2824) e0ef19e2 Add cassandra TLS support (#2769) 519b92b9 Consistent query support (#2678)

    Bugs fixes and improvements

    e16c5a3e Dedup activity heartbeat timeout timer task creation (#3032) (#3037) d5cd7b0b Revert commits for adding debug metrics and logging (#3033) 6bf637f5 Update metrics and add logging for activity timeout task (#3030) 23fa79cb Add metrics for profiling activity timeout task latency (#3026) 7af39efd check if timer expired first 3578a38e Increment readLevel when skipping over expired tasks (#3020) 92754ec5 Revert "Add more metrics for task processing logic (#3018)" 08592c33 Fix indexer not retry on error code 500 (#3015) 939b320d Update logging tag with the correct component (#3016) ba50eb11 Add more metrics for task processing logic (#3018) a48bcb6d change default value of replicatorMaxRetryCount (#2988) ca58d68c replicator: enforce maxRetryCount per domain (#2987) 646718fc Fix listarchived cli command (#2998) c805c55c Move replication context timeout to dynamic config (#2979) f3872e0d Matching use non retry matching client (#2993) 821b4001 queueProcessor: fix write on closed chan panic (#2986) f5186f10 Eat operation not support error for change version on DB (#2950) c7102775 Better handling Cassandra data resurrection issue (#2949) 533e36b9 Add more options to reset batch: skip_base_not_current, non_deterministic_only (#2931) 2348e969 Enable domain update clusters info (#2940) e057c466 Move some APIs to frontend to admin (#2939) 6c962c9d Admin command for visibility into membership info for the cluster (#2938) e5f7c87a Fix NDC workflow events reapplication issue (#2933) bb555046 Fix config deserilization error (#2927) eb47ac63 Added API for getting partiton information for scalable tasklist (#2910) 618d7cc0 Release strict assertion for UpdateCurrentWorkflowByPass for marking workflow as corrupted state (#2907) d81a728d Enforce ordering in reading transfer tasks (#2916) c961861e Remove dependency requirement for gogo/protobuf v1.3.1 (#2919) fb962737 [Kafka deprecation] Move ack level to source cluster (#2896) 8d0f6cd1 Add docker-compose config for postgresql for dev (#2904) 9ecec8e6 Added API that returns information about Cadence deployment (#2845) 3c372361 Add acquire shard time metric (#2912) e5ceaa25 Disable mutable state sanity check for data inconsistency (#2914) 0325021a Update persistence.md (#2911) 0d60272b Test implementation for shard context (#2897) 1c6aa685 Backward compatible feature version check when clientImpl is not set (#2906) 39fabad3 Consistent query bug fixes (#2908) 1e63e932 Modify driver to plugin in docs for MySQL (#2909) 34f4f6cc Refactor server main to make it simple to build with pulgins (#2905) 5f71093c Handle activity start not found during replication (#2902) 97de98cc frontend.getHistory: add validation / sanity checks (#2900) 9e996b02 Clean up IDL for error list and returnning error in Frontend (#2901) 9ca09ccc Removed cassandra-consistency from all the configs (#2898) 61d1a8a7 Add health metaserver to matching service (#2867) efa68ee5 frontend.PollForDecisionTask: add validation to verify history is complete (#2890) b972d8d3 Use concurrent loading to acquire shards: (#2888) a76b9574 Persistence refactoring to be pluggable for any database (#2836) ac457cd9 Use new resource struct for history (#2875) 04732b2c Fix admin kafka cli regex (#2886) 4a5a0d64 Consistent query metrics (#2885) 83f9b216 Handle retry v2 error in replication task processor (#2876) bf93d90c initiate graceful shutdown after SIGTERM (#2881) 2ea7256a Record binary checksum for decision task failed event (#2873) 17531266 Fix missing properties in continueasnew when workflow fail (#2883) 38ba6426 Add tags to error logs in frontend (#2880) 245075c1 Update words with spelling (#2872) dc5f154c Fix race condition in integration test (#2871) 41f1acc6 Use new resource struct for frontend (#2851) 5e0a62bd logging: attempt to fix high memory on history (#2859) a5b2ed79 Set max result window for ES integration test (#2860) 505a79e0 ContinueAsNew should track the workflow previous run for NDC enabled (#2853) 4b079a0a cleanup: replace noisy log with domain specific metric (#2852) b4b4686c Adding a layer to ignore reapplied events (#2787) 6137576f Dynamic config limits for consistent query (#2842) 6189d1d6 Remove sticky query (#2846) 1b10ab34 Update CLI version (#2844) 04d4d42b Improve list archived API and fix print all with json (#2840) a4e46007 Fix replicate ActivityTaskCancelRequested event if activity info not found (#2838) 5032b196 Remove Cassandra Consistency config beacuse it's it's always hard coded to local quorum (#2837) 808265e9 Matching query refactor (#2825) 658758ac Fix mysql not supported error on server binary (#2832) edf871d5 Fix NDC continue as new to non-current branch deadlock (#2831) d553f551 Delay worker startup for service warmup (#2827) 37c4e32c CLI improve list command usage hint on timestamp (#2822) eedf89b7 Fix create workflow error handling issue (#2823) 7700613b Auto forwarding should be enabled by default for global domain #2677 (#2798) cd7d0d11 Use start event timestamp for visibility record (#2820) 42d03452 Add CadenceChangeVersion as default valid search attribute (#2817) b9fdaa10 Dynamic config to reject query based on domain (#2804) 12cb7499 Fix Visibility Archival Metrics (#2818) 21e7f99d Consistent query version check (#2762) 7774d239 Adding a counter when RespondDecisionTaskCompleted returns with empty… (#2807) e946049c Archive visibility records when workflow close (#2814) 8109c60a Handle empty newRunHistory in stateBuilder (#2813) 95093ea3 Fix zombie workflow continue as new issue since new run may exits (#2812) 5c4837e2 Fix typo in IDL for activityTimeout (#2809) 9f314d7c Handle continue as new in resend (#2808) 14ff96b1 Record last activity failure reason and detail when timeout (#2806) 1fac8f63 Fix sync activity update zombie (#2805) d4308b9e Adding logging for debugibility (#2802) cc891e2f Fix panic if cluster metadata is not set correctly (#2799) 79247996 New persistence client bean for DB clients management (#2795) dbd9ffc4 Do not expose ports for build kite tests (#2800) 17000cfd Use cron workflow for history scanner workflow (#2796) 6bd2bf91 Fix race condition issue for history scavenger against archiver (#2783) 925d24d8 Fix workflow status check on start of transaction (#2794) 6a264d2e Improve error message for reading passed retention workflow history (#2791) d3e9c274 update graphite-statsd (#2789) bc1ebff4 Rename TaskID in TimerInfo to TaskStatus for readability (#2786) e5b6bdb0 Improve 2DC NDC compatibility (#2747) 60e09caa fix linting (#2779) 0a722c0f Fix timer typos (#2784) ef6757aa Add search attrs to batch canary (#2776) 4a912843 Use different argument for cassandra address in Admin CLI (#2761) 971ea748 Fix history replicator reset context (#2774) c98ef332 Optimize parent close policy system workflow (#2778) ca0897b3 CLI: add security token to admin add search attribute (#2773) 6120c999 Visibility Archival logger tags and dynamic configs (#2775) 1046b5b3 Add database schema version check for mysql (#2771) 33321e27 Add security protection for admin add search attributes API (#2772) 288a7d29 Bugfix: worker startup logic (#2770) 956c1b3b Fix workflow completed race for signal/cancel/terminate (#2749) ba9e8812 Compare schema version from version.go (#2768) 58942418 Fix tasklistName for starting scanner worker (#2763) 4c6c35d9 Transfer active processing refactoring (#2750) 454d3812 Fix out of boundary of resend events (#2755) 3b41da33 Add validation for add search attributes (#2759) 31aa7a6e Fix bug in rate limiter that does not reject request correctly based on policy (#2760) f58eae70 Change Default Eventstore Version to 2 (#2758) a4561ec5 Consistent query do not generate decision task for unhandled queries (#2732) e89769dc Update yarpc to v1.42.0 for yarpc #1798 (#2757) 539e88a2 CLI: add missing memo in describe workflow (#2754) b1c08864 Fix workflow execution state (#2746) 5ac1e0b9 Fix bug that workflow can be continued as newed in created state (#2745) fe0bd36e Add make target for NDC local setup (#2744) 9c41413e Make error message the same for eventual query and consistent query (#2743) 5fb6f0d9 Sort imports by group (#2742) 0cd0ffaf Update supported client version (#2741) bc329458 Emit separate metrics for history and visibility in archival client (#2733) 0b398c77 History DLQ implementation (#2699) 59450433 Rename DecisionTimeoutValue to DecisionStartToCloseTimeout (#2727) a1b996d7 Modify state builder to use standardlized task generation logic (#2721) ac906934 Do not initialize remote clients if cluster not enabled (#2722) 2ec68456 Add check that context is valid after trying to dispatch query on sticky (#2716) 4c557a19 Add timer sequence UT (#2715) 2827287a Rewrite timer builder, as timer sequence (#2709) d0b51308 Add more consistent query integration tests (#2708) b86a313f Ensure waitGroup.Done is called in test (#2711) 8193270a Fix sync activity timer bug (#2706) 8ae29adb Add runID to queryDirectlyThroughMatchingRequest (#2705) 351b3fd0 Fix lint (#2700) 74c2327c Add cli flag to run consistent queries (#2702) bf5d8c58 Fix replication task nil bug (#2701) b5b20e39 Move db schema version definition to one place (#2695) 9ae7b5af Deprecate mockery generated mocks in history service (#2692) 8d14eb53 Build: use Go v1.13.3 (#2693) 4e817450 Bugfix: add domain name to request when only visibility archival is enabled (#2689)

    Refactor related

    e58ce1a8 Introduce resource package for dependence management (#2803) b24ff30d Use new resource struct for matching / worker (#2811) a0058ffe Deprecate timer builder (#2725) 403373bf Mockery deprecation (#2724)

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(46.50 KB)
  • v0.10.3(Dec 4, 2019)

  • v0.10.2(Nov 27, 2019)

  • v0.10.1(Nov 21, 2019)

    e43015fb Release 0.10.1 bbaf66ae Release 0.10.0 c6112ac5 Fix replicate ActivityTaskCancelRequested event if activity info not found (#2838) 428e71bd Fix tags format after cherrypick d6990d3f Adding backward compatiblity on pollMutableState API 21fdb82d add tag for tpath 01cc9c9e Include ability to reject queries based on domain d34d2959 Add tag for archival blobstore context timeout 2dbf4633 Optimize parent close policy system workflow (#2778) 7c7361e1 Fix race condition issue for history scavenger against archiver (#2783) 91406fff Use cron workflow for history scanner workflow (#2797) f860282c (andrew/0.10.x) Fix tasklistName for starting scanner worker (#2763) deb63374 enforce size limit on query input and query result (#2766) 109505b1 Change Default Eventstore Version to 2 (#2758) 02512573 Fix bug that workflow can be continued as newed in created state (#2745) e9e1ef9c Update supported client version (#2741) 89f6c09f Do not initialize remote clients if cluster not enabled (#2722) 21e471ac Emit separate metrics for history and visibility in archival client (#2733) 4fbb6f85 Fix sync activity timer bug (#2706) fe1ff90d Fix replication task nil bug (#2701) 41f93cb6 Bugfix: add domain name to request when only visibility archival is enabled (#2689) 3acdb70f (tag: v0.10.0) Update Kafka client for TLS config bugfix (#2688) 1da0ebfa Fix missing start time in executions table (#2687) a6e12114 Fix sync activity linting (#2686) 5534efc7 Handle sync activity in NDC (#2673) 8b2594c8 Rewrite passive task processing life cycle (#2680) 11500606 Update canary error handling (#2683) 951eb793 Delete unused folder/files (#2676) 4514b2e2 Adds prometheus config to config_template.yml (#2669) 961f8b3c Delete CompleteFork API from History Persistence (#2675) cbf1d4a4 Properly handle error cases in mutable state (#2674) f72adc51 Rename History Events V2 interfaces (#2660) 9ddbe2fe Wire up event resend with admin client get raw history API (#2654) 6c8d5318 Abort domain cache refreshment retry during shutdown (#2672) df19cca8 Improve domain cache error handling (#2671) a84e928f Flush buffer events when workflow close (#2668) 5e00abe5 sql-tool: fix error message (#2667) a0cd90d7 Update admin CLI handle NDC version history (#2662) 99b2baa1 Fix docker build (#2665) 1ddc599c Rewrite workflow resetter for NDC (#2656) 16eb3d57 Deprecate historyV1 in archiver history iterator test (#2655) 58879efb Remove Deprecated code of Events V1 (#2634) dda75d09 Remove unnecessary user timer API in timer builder (#2659) 44f69c7a Update handle update current branch logic on current workflow finish (#2657) 8be21373 Fix worker initialization issue (#2650) 189b1e1e Implement Admin Get Raw History API For NDC (#2625) 02114978 Fix issue that replication target clusters are not enforced (#2649) 48541357 Domain replication followup changes (#2648) f756049d Domain replication ack and cleanup (#2628) d128b8bf Add domainName to archive visibility request (#2643) 376e0297 Wire Kafka with NDC (#2642) dccfa24d upgrade version which server can support (#2638) edd14e12 Emit tasklist tag for workflow completion event (#2636) 6d70d9a0 Domain V1 deprecation cleanup (#2639) ef14cb24 Support opaque and query in archiver URI (#2630) 9ac2bf16 Add metrics for visibility archiver (#2629) 62eacc8d Handle NDC randomized test edge case (#2637) 9d30d923 Fix domain cache refresh bug (#2635) a781595a Deprecate metadata manager V1 implementation in Cassandra (#2633) 4904aca4 Enable NDC feature flag for integration test (#2631) 6d2ffbd5 Enable ndc integration test in buildkite (#2626) 673a10bf Add admin domain CLI which can bypass frontend (#2624) e2cfef98 Update CLI to support Visibility Archival (#2615) af7e0cb8 Merge pull request #2620 from uber/3+DC a74819bc Merge branch 'master' into 3+DC ac3eba1a Fix bootstarp errors (#2621) b88ecb6f Merge branch 'master' into 3+DC e126ebeb Fix Slack invite link in README (#2619) eed53960 Merge branch 'master' into 3+DC 10c9b78a Disable NDC for merge back to master (#2616) c81b8965 Handle visibility archival requests in system workflow (#2610) 5fa1faf4 Introduce in memory decision task state machine (#2597) 4a63a822 Move domain handling logic to common package (#2612) d29385fb Improve file based dynamic config client error message (#2611) d1c4d4bf Open Source Cadence Canary (#2594) 901e8042 Improve cross compile functionality on Makefile (#2606) 85cc6f38 Fix clusterInfo in development_mysql.yaml (#2608) 12f051ef Add protection on SQL injection for visibility (#2562) 8c06707a Fix NDC workflow reset nil pointer (#2605) 1e9e137a Add CadenceChangeVersion to search attributes (#2604) f6a02473 Fix NDC events reapplication transaction policy (#2602) 39599a25 Add metrics when poll for decision task fail (#2600) 609b5268 Improve MySQL db query index usage (#2598) 6d5494cd Handle NDC events reapplication to current workflow (#2596) 6ab93242 Revert "Refactor archival workflow" (#2593) 17365907 Implement NDC events reapplication (#2577) efe8e19c add comments to validateListOrCountRequestForQuery to clarify usage of sql statement (#2566) 7a4e0a40 Upgrade to go 1.13 (#2592) d91a7bff Refactor archival workflow (#2583) c6f99b27 Add nosec comments for scanner (#2568) 5f7e5dc6 A batch of issue fixes (#2591) d51b8dfd Reset: not rely on timeout for cleanup history (#2589) 5606e0f6 Run go mod tidy (#2588)

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(42.50 KB)
  • v0.9.8(Nov 21, 2019)

    Please ignore v0.9.6, v0.9.7 and v0.9.8

    This is a temporary release to get to 0.10.0 release. In 0.10.0 eventsV1 is removed, this release eases the deployment to 0.10.0. Once you deploy 0.10.0 you can roll back to this but not to 0.9.5.

    Source code(tar.gz)
    Source code(zip)
    docker.tar.gz(41.50 KB)
Owner
Uber Open Source
Open Source Software at Uber
Uber Open Source
dque is a fast, embedded, durable queue for Go

dque - a fast embedded durable queue for Go dque is: persistent -- survives program restarts scalable -- not limited by your RAM, but by your disk spa

Jon Carlson 696 Jun 15, 2022
A fast durable queue for Go

pqueue - a fast durable queue for Go pqueue is thread-safety, serves environments where more durability is required (e.g., outages last longer than me

Linh Tran Tuan 12 Jun 10, 2022
A simple queueing system for long-running commands

qme (queue me) A simple queueing system for long-running commands. It allows you to queue up shell commands from anywhere, and run them in order. This

Abdussamet Koçak 23 May 21, 2022
Machinery is an asynchronous task queue/job queue based on distributed message passing.

Machinery Machinery is an asynchronous task queue/job queue based on distributed message passing. V2 Experiment First Steps Configuration Lock Broker

Richard Knop 6.3k Jun 29, 2022
A wrapper of streadway/amqp that provides reconnection logic and sane defaults

go-rabbitmq Wrapper of streadway/amqp that provides reconnection logic and sane defaults. Hit the project with a star if you find it useful ⭐ Supporte

Lane Wagner 337 Jun 30, 2022
GTA(Go Task Async) is a lightweight reliable asynchronous task and transaction message library for Golang

GTA (Go Task Async) is a lightweight and reliable asynchronous task and transaction message library for by golang.

Kevin Su 12 Jun 4, 2022
Scalable real-time messaging server in language-agnostic way

Centrifugo is a scalable real-time messaging server in language-agnostic way. Centrifugo works in conjunction with application backend written in any

Centrifugal 6.1k Jun 28, 2022
💨 A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps.

Beaver A Real Time Messaging Server. Beaver is a real-time messaging server. With beaver you can easily build scalable in-app notifications, realtime

Ahmed 1.3k Jun 27, 2022
Scalable package delivery logistics simulator built using SingleStore and Vectorized Redpanda

Reference Architecture using SingleStore and Redpanda for global logistics ?? INFO: For the story behind this code (and epic dashboards), check out th

SingleStore Labs 30 Jun 18, 2022
Emits events in Go way, with wildcard, predicates, cancellation possibilities and many other good wins

Emitter The emitter package implements a channel-based pubsub pattern. The design goals are to use Golang concurrency model instead of flat callbacks

Oleg Lebedev 428 Jun 15, 2022
Declare AMQP entities like queues, producers, and consumers in a declarative way. Can be used to work with RabbitMQ.

About This package provides an ability to encapsulate creation and configuration of RabbitMQ([AMQP])(https://www.amqp.org) entities like queues, excha

Alex 74 May 29, 2022
Imagine a simple, beautiful, secure, and freaking fast way to broadcast your events throw the internet

Event Superintendent Imagine a simple, beautiful, secure, and freaking fast way to broadcast your events throw the internet. That's exactly why you sh

Nurio Fernández 1 Jan 28, 2022
Asynq: simple, reliable, and efficient distributed task queue in Go

Asynq Overview Asynq is a Go library for queueing tasks and processing them asynchronously with workers. It's backed by Redis and is designed to be sc

Ken Hibino 3.6k Jul 2, 2022
Inspr is an application mesh for simple, fast and secure development of distributed applications.

Inspr is an engine for running distributed applications, using multiple communication patterns such as pub sub and more, focused on type consistency a

Inspr 48 Jun 10, 2022
A lightweight, distributed and reliable message queue based on Redis

nmq A lightweight, distributed and reliable message queue based on Redis Get Started Download go get github.com/inuggets/nmq Usage import "github.com

Nuggets 2 Nov 22, 2021
A realtime distributed messaging platform

Source: https://github.com/nsqio/nsq Issues: https://github.com/nsqio/nsq/issues Mailing List: [email protected] IRC: #nsq on freenode Docs:

NSQ 21.5k Jun 28, 2022
Easy to use distributed event bus similar to Kafka

chukcha Easy to use distributed event bus similar to Kafka. The event bus is designed to be used as a persistent intermediate storage buffer for any k

Yuriy Nasretdinov 71 Jun 8, 2022
Distributed Lab 3: Message Broker in Go

Distributed Lab 3: Message Broker in Go Using the lab sheet There are two ways to use the lab sheet, you can either: create a new repo from this templ

null 0 Oct 29, 2021
⚡️ A lightweight service that will build and store your go projects binaries, Integrated with Github, Gitlab, Bitbucket and Bitbucket Server.

Rabbit A lightweight service that will build and store your go projects binaries. Rabbit is a lightweight service that will build and store your go pr

Ahmed 195 Mar 10, 2022