Highlights
Thrift Deprecation
Thrift support is now fully removed in Java client. (See why #985 ).
Migration Guide from V3
User facing APIs on workflow operations are mostly unchanged. But there are some BREAKING changes as list below.
Thrift to new Entities in API calls
For users to migrate easily, we generate a new set of entities with the same import path and similar interfaces.
- you can no longer access fields directly but instead have to use
getter
andsetter
explicitly. IWorkflowService
will no longer throwTException
but insteadCadenceError
; all other exceptions thrown are kept the same extended fromCadenceError
IWorkflowService
usescom.uber.cadence.serviceclient.AsyncMethodCallback
instead oforg.apache.thrift.async.AsyncMethodCallback
in callback methods.
Data Converter
If your workflow's input or output contains Thrift entities that extended from TBase
, TEnum
, TException
. This is a BREAKING change. You'll need to add back the thrift adapters in your custom dataconverters. We no longer support them by default.
- We removed special
TBase
andTEnum
adapter (first introduced to reduce payload size #263). - We removed the ability to convert
TException
but instead you'll get a fallback typecom.uber.cadence.client.ApplicationFailureException
Construct your client
WorkflowServiceTChannel
is now removed and replaced byWorkflowServiceGrpc
- If you use Grpc before, instead of
new Thrift2ProtoAdapter(IGrpcServiceStubs.newInstance())
you can now useWorkflowServiceGrpc()
directly.
What's Changed
- fix (mapper): updateDomainRequest bug by @shijiesheng in #1005
- fix (test): some flaky unit test and make test run faster on CI by @shijiesheng in #1007
- change (log): remove payload from Thrift data converter's deprecation log and add additional log for TEnumType converter by @shijiesheng in #1011
- change (release): Publish to Central Publisher Portal instead by @shijiesheng in #1012
- change (CI): Added github action tests by @mandyschen in #1013
- change (CI): Always upload artifacts by @mandyschen in #1016
- fix: Add unimplemented DiagnoseWorkflowExecution methods by @c-warren in #1015
- change (CI): Remove references to buildkite by @mandyschen in #1014
- feat (acitivity): Add attempt number to structured activity logger by @evansandoval in #1020
- chore: remove unnecessary TaskListKind internal entity by @shijiesheng in #1023
- remove raw history support by @shijiesheng in #1025
- feat (thrift deprecation): Part 1: new entities by @shijiesheng in #1024
- feat (thrift deprecation)!: Part 2: replace thrift entities with internal ones by @shijiesheng in #1022
- fix (data converter): fail open on exception not found by @shijiesheng in #1027
- feat (ci): Lint PR titles with Conventional Commits standard by @c-warren in #1028
- feat (ci): Support gpg key signed commits by @c-warren in #1029
- fix(mapper): avoid null pointer exception in request mappers by @shijiesheng in #1030
New Contributors
- @mandyschen made their first contribution in #1013
- @c-warren made their first contribution in #1015
- @evansandoval made their first contribution in #1020
Full Changelog: v3.12.7...v4.0.0