Releases: cadence-workflow/cadence
v0.3.3 Release
This release has a lot of new features and some important stability fixes for known Cadence server issues. This release also includes few schema changes to both cadence and visibility keyspaces. It is required to deploy schema version 0.2 of cadence and visibility keyspaces before deploying this release. Here is the list of some new features and improvements in this release.
Schema Changes
All the schema changes required by new features are backwards compatible please make sure to deploy cadence schema 0.2 and visibility schema 0.2 using the cadence-cassandra-tool before deploying this release of Cadence server. Following are the changes we requires 0.2 version of schema:
- 9db7677 - Decision task failure support (#422)
- e6697df - add sticky decision execution (#401)
- d79841b - buffer events when decision task is inflight (#386)
- cbc769d - Fix decision task leak with workflow timeout as ttl (#373)
- b3d8ab3 - Reduce tombstones for open workflow executions (#395)
New Features and Improvements
Sticky Decider Support
Server side support for generating new decisions on sticky tasklist protected by decision schedule to start timeout.
- e6697df - add sticky decision execution (#401)
- a866622 - fix sticky scheduleToStart timeout (#408)
- 7553066 - ship history event diff with sticky task (#406)
- bc4cd93 - backlog hint (#424)
DecisionTask Failure Support
Server side support for failing decisions tasks for scenarios like decider panics or clearing sticky tasklist.
Long Poll API for GetWorkflowExecutionHistory
Describe Workflow Execution API
Complete Activity By ID
Buffer Events
- d79841b - buffer events when decision task is inflight (#386)
- 6a59d1b - remove startedEventId from PollForActivityTaskResponse (#391)
- d0bd7ba - update startedEventId in buffered events (#392)
Running Cadence on AWS
- 73ffdeb - Fix and update docker (#368)
- 949009e - Extend statsd reporter to having tags appended to metric names (#378)
- b388ca7 - Minor fixes for cadence-aws project (#379)
- df770f5 - Add a script to autobuild docker image (#389)
Visibility Fixes
- b3d8ab3 - Reduce tombstones for open workflow executions (#395)
- 3970354 - Increase open execution TTL to account for shard outages (#399)
Stability Fixes
- 3455967 - Shard lost Owner ship to preserve the owner host (#367)
- 20f962f - After update timer ack level go back to waiting on any event (#375)
- cbc769d - Fix decision task leak with workflow timeout as ttl (#373)
- 0aba207 - add query failed metrics definition (#393)
- b446766 - put firstEventID as part of nextPageToken (#419)
- 1540be7 - Protect gettask to avoid query aborted caused by tombstone (#410)
Schema Version Check
- 9968ec6 - Add cassandra schema version check on startup (#438)
- d96d0d1 - Add shortcut to install cassandra schema on startup (#442)
- f7e2ff1 - Update docker script to install cassandra schema versions (#445)
Miscellaneous
- 90b11d9 - Remove thrift-gen from instructions (#366)
- 46de15c - OneBox: Expose front-end service in the interface (#376)
- 1fb0a3d - Fix wrong error message (#387)
- caaf33d - revert import order change made by Gogland (#403)
- a5875a7 - Update README.md (#414)
- cadabad - putting headers back on generated files (#430)
- c7eb00b - Add thrift gen files from glide up (#436)
- 8271ecd - Add thrift generated files (#437)
- b97f07c - RWMutex that allows bailing early when context expires (#336)
- 881db8a - Add test to help debug (#443)
- d77fdf2 - fix linter (#444)
v0.3.2 Release
New Features and Improvements
Query Support
- bdbe5c0 - update interface for query api (#342)
- 8f5a16f - query API server side implementation (#347)
- 3b1b45b - log query failed without actual payload (#351)
YARPC Work
- 2350831 - Migrate from TChannel to RPC framework(YARPC) (#335)
f3cdfb2 - Pinning thriftrw/thrfitrw yarpc plugin. The newer plug-in seems to have some GET'ers. We can use them in later PR. (#345) - f358b88 - Standalone to start dispatcher for outbounds. (#346)
Cancel Support For Outstanding Pollers
GOCQL Connection Pool Per Host
Persistence Adjustments
- fd9a01a - Adjust scan intervals for transfer queue processor (#356)
- 9169f8f - fix condition on updating shards (#357)
Stability Fixes
- 215baf5 - Properly unload taskListManager if Start fails (#309)
- df9ac3e - Properly handle throttling errors from Cassandra (#316)
- 37a6a24 - Add backoff in TransferQueueProcessor readTransferTasks (#332)
Bug Fixes
- 7213396 - MatchingEngine to correctly handle EventAlreadyStartedError from history (#317)
- 9ccd575 - Transfer Queue Processor can get stuck on StartChildExecution task (#337)
Miscellaneous
v0.3.1 Release
This is patch to fix some stability issues we discovered in previous release. We saw FD leaks caused by leaking gocql clients and a regression causing unavailability of shards during membership changed events.
Stability Fixes
- 85ba1df - shardController: fix fd leak, add metrics and process closeShard in batch (#310)
- f246cb3 - shardController: revisit shard shutdown order, add latency metrics (#314)
Misc
v0.2.0
New Features and Improvements
Allow Getting Workflow Execution History after completion
Cleanup of Events Table
Workflow Execution Timeout Support
- 3e6aac7 - Workflow execution start to close timeout (#249)
- 6d8ad64 - Delete workflow execution on workflow time out. (#267)
Emit metric from various parts of service
- 7eacb42 - History engine metric (#239)
- 3623662 - service metrics to track availability and latency (#238)
- b10cd30 - Metrics for timer processor (#241)
- 04239f2 - matching: emit metrics for interesting events (#244)
History Metric is no longer tagged with ShardID
- 348ad84 - Use the same value for shard tag of metric reporter (#245)
- 8d81d42 - Remove shard id metrics tags
- ffefac1 - Bring back shard id tag (#262)
- 9971c83 - Shard id metric tag (#265)
Schema Changes
We have to create a new version of schema required for various bugfixes. Also performed upgrade testing to make sure schema can be upgraded from v0.1 to v0.2.
Schema Version 0.2 needed for RequestCancel external workflow bugfixes
Updates to base schema to fix minor issues and remove some unnecessary tables
- 5de4d7a - timer_ack_level schema type from big_int to timestamp. (#243)
- 7069686 - Remove shards table from base schema (#251)
- 9711a71 - Remove visibility tables from cadence schema (#257)
Stability Fixes:
- 4614c23 - Timer Processor to checkpoint ack level (#233)
- 1f6917c - persistence: expose close methods to cleanup gocql session conns (#240)
- 552ca7a - Cleanup noisy frontend logs (#261)
Bug Fixes
- b8d3a81 - Convert domain retention to seconds for visibility record (#235)
- c02fab2 - Convert visibility_ts timestamp to int; add error check in the front end handler code. (#242)
- 8d32a90 - Request cancel external workflow execution fixes. (#256)
- e778c79 - making sure to not update history on invalid mutable state transition (#259)
- 293a73c - Bug fix to not append event to execution after completion (#260)
Miscellaneous
v0.3.0 Release
We are resetting the schema back to v0.1 and pulling all changes into base schema. This was necessary due to timer optimization work and finding an issue with cassandra static columns which we uncovered during testing. This means we don't support upgrading from previous version of Cadence.
New Features and Improvements
Reduce the number of timer tasks
- 5531ea3 - Activities to create one timer per workflow (#278)
- c06bbbb - Timer task creation marker can identify activity time type (#289)
Throttling
Health Check Endpoint
- cc82d24 - add cheal check endpoint (#284)
- 5530fac - wait until startWG is done for health endpoint (#288)
Cassandra authentication support
- 17ab1a2 - add cassandra tool support for user and password connection to cluster (#298)
- 5c4df61 - Cassandra config support for authentication (#299)
Schema Changes
- 3560320 - Restrict clustering key in taskList rangeID check (#292)
- 9224d64 - Turn RangeID into a non-static Cassandra column (#293)
Stability Fixes
- aa6f4b2 - Unload task list if RangeID change is detected in persistAckLevel (#271)
- ac23bdb - Insert visibility store record after creating matching task (#274)
- b77af1e - Serialize task list persistence writes (#285)
- 4053538 - matching: fix crash on task list shutdown (#290)
Bugfixes
- a5a7c51 - GetWorkflowExecutionHistory returns invalid nextPageToken (#283)
- 76ddae6 - glide: pick up tchannel log poll fix (#295)
Miscellaneous
- 2a19301 - Refactor user timer methods on timer builder (#253)
- b5c2556 - Add build and coverage badege to README.md (#275)
- 3ac1e5a - Logging format (#291)
- 524be31 - Cleanup constants in persistence to be created using some scheme (#294)
- 719bb1c - Pass config to cadence matching and frontend services during initialization (#296)
- e21f256 - Move testShardContext from persistence package to history package (#297)
v0.1.1-beta release
New Features And Improvements
Child Workflow Support
Docker Support
- a7da4e0 - bootstrap: config loader and executable for cadence server (#196)
- b1f7b8b - First pass at dockerFile for cadence server (#199)
History Pagination
ActivityTask Gets All Activity Timeouts
History Version Support
DecisionTaskFailed Support
- 3811ccf - Fail decision task due to race condition on workflow completion (#165)
- c79f561 - Fail Decision on invalid decision attributes (#179)
Visibility Improvements
- aab5a6f - Store status for closed workflow executions (#164)
- ba64999 - Enable visibility filtering by execution closed status (#170)
- cb971ca - Move visibility store to its own keyspace (#217)
Request Validation
- de702f7 - Validate request parameters at the frontend handler (#172)
- 47e25f1 - Validate timeout values in StartWorkflowExecution (#180)
Open Sourcing
- 437a8a9 - make integ tests count towards code coverage (#178)
- a819aee - add copyright header to all files (#183)
- 6accf7e - Enable golint / gofmt checks at make time (#185)
- 37a57f9 - make: add tool to auto-generate copyright header (#184)
- 685b66d - Peer review for open sourcing Cadence bits (#212)
- 27c531e - Update README.md (#200)
Bug Fixes
- c6b21ff - Correctly stop shard on rangeID update failure (#168)
- d11e66a - Do not hold lock on execution when creating task in matching engine (#188)
- c8180ad - Limit the result of GetTimerTasks query (#195)
- 250f52f - Complete Timer and Transfer tasks after execution is completed (#201)
- beae3b6 - Properly return empty token on empty poll request (#219)
- fab8fc1 - Use proper config for visibility keyspace (#232)
Stability Fixes
- 5ddccf4 - Insert activity tasks with TTL (#186)
- b43c10a - Remove mutable state immediately once the workflow execution completes (#209)
- adc3e51 - Fine tuning of Cadence schema (#211)
- 4ae39f2 - Remove extra query in transfer queue processor if queue is empty (#220)
- 4bc9116 - Use consistency level ONE for visibility store reads (#218)
- 6f8f88e - Use DomainConfig Retention for visibility record TTL (#221)
- ceeba99 - Complete Transfer tasks even after execution is completed (#230)
Miscellaneous
- 37331d8 - Add missing scope for HistoryClientRespondActivityTaskCanceled (#161)
- 0f8a007 - Timer Q Processor - Unit Tests/Workflow Completion. (#166)
- 55837e1 - tooling: first pass at cassandra setup-schema tool (#171)
- ef260bf - tooling: support for cassandra update-schema (#177)
- d8d54d3 - Refactor loggingHelpers (#173)
- ad44d59 - Refactor transferQueueProcessor processing into multiple methods (#198)
- f48b5cf - config: add support for custom ringpop discovery provider (#210)