Skip to content

v0.4.1 Release

Compare
Choose a tag to compare
@yiminc-zz yiminc-zz released this 05 Dec 02:05
· 692 commits to master since this release
26b7a24

New Features and Improvements:

Breaking changes

  • Upgrade client to thriftrw changes (#246)

Note: we switched RPC from directly using tchannel to yarpc. Part of that change is switching from using thrift to thriftrw to generate thrift client code (#246). This means the thrift client is now workflowserviceclient.Interface instead of cadence.TChanWorkflowService. Below APIs which used to require cadence.TChanWorkflowService are now requiring workflowserviceclient.Interface. Calls to those APIs will needs a proper update:

  • cadence.NewClient(...)
  • cadence.NewDomainClient(...)
  • cadence.NewWorker(...)

To create a workflowserviceclient.Interface instance, you need a yarpc.Dispatcher. Below is a simplified sample code to do so:

import (
  "go.uber.org/cadence/.gen/go/cadence/workflowserviceclient"
  "go.uber.org/yarpc"
  "go.uber.org/yarpc/transport/tchannel"
)
var _cadenceFrontendService = "cadence-frontend"
func createCadenceServiceClient() workflowserviceclient.Interface {
	tch, _ := tchannel.NewChannelTransport(tchannel.ServiceName(_cadenceFrontendService))
	dispatcher = yarpc.NewDispatcher(yarpc.Config{
		Name: "cadence-client",
		Outbounds: yarpc.Outbounds{
			_cadenceFrontendService: {Unary: tch.NewSingleOutbound("127.0.0.1:7933")},
		},
	})
	serviceClient := workflowserviceclient.New(dispatcher.ClientConfig(_cadenceFrontendService))
	return serviceClient
}

Sticky decision

  • add sticky decision task list (#267)
  • fix sticky attributes (#270)
  • add lru cache (#273)
  • partial history (#277)
  • drain sticky task list first (#286)
  • fix sticky state (#303)

New features

  • add DescribeWorkflowExecution client side change (#285)
  • Complete Activity by ID (#291)

Bug fixes

  • fix coroutinue leak before workflow completed (#245)
  • fix race candition in test framework (#284)
  • fix mock behavior (#261)

Miscellaneous

  • print unexpected mock calls (#252)
  • update cadence.Sleep() doc (#264)
  • update doc (#266)
  • Passing headers through yarpc call options (#249)
  • remove GetWorkflowStackTrack from client API (#276)