Skip to content

v1.14.0

Compare
Choose a tag to compare
@cretz cretz released this 10 Mar 16:17
· 375 commits to master since this release
706516c

Highlights

💥 Breaking changes have been made to remove a couple of advanced options and to do slight renames in the converter package for encoders. See below for details

Replace Client Health Checking

Previously, by default creating a client would use the gRPC health check on the server to ensure it was available or would fail client creation. Due to now needing information about what the server can/can't do, we make a different call to obtain that info instead of the health check call on client creation.

This change should not be visible to most users. However, we have removed the advanced client.ConnectionOptions.DisableHealthCheck and associated health check options from that struct. This no longer applies since there is no health check. This also means currently all clients make an eager connection to the server as they always had by default.

Advanced Encoding Updates

We have renamed the recently added converter.PayloadEncoder to converter.PayloadCodec for cross-SDK clarity and did similar for other "encoder" parts. This codec is focused on byte-to-byte conversion during data conversion. It can be used in a converter.CodecDataConverter to transform bytes for encryption, compression, and/or anything else.

We have added a few utilities to aid those wanting to do custom encoding in a more central place:

  • We have added a gRPC interceptor in the converter package that, when used for a custom proxy, will transparently encode and decode payloads given a codec
  • We have added a gRPC proxy in the client package that can be registered with a gRPC server to proxy requests to a Temporal server (which can then use the aforementioned interceptor to do encoding/decoding)
  • We have added the ability to expose a codec over HTTP for use with a remote data converter that will let you encode/decode remotely (for expected use from the browser UI and tctl for centralized end-to-end encryption)

Specific Changes

2022-02-22 - 22369cb - Fix markdown syntax. (#734)
2022-02-22 - 3f45616 - Do not serialize empty OpenTracing spans (#729)
2022-02-22 - 621fd1e - Support ignore comment alongside godoc (#731)
2022-02-22 - 856f5c2 - Adjust HTTP protocol to take Payloads not Payload. (#733)
2022-02-22 - a7d8c1a - Set workflow start time for tests on workflow info (#735)
2022-02-22 - e96a9d9 - Disallow MaxConcurrentWorkflowTaskPollers to be set to 1 (#727)
2022-02-28 - c82b73d - Fix activity cancellation race when not cancelling workflow (#741)
2022-03-01 - c3eb5b0 - Replace health checking with server-capability getter and disable retries on internal errors (#706)
2022-03-01 - d409984 - Allow replayer to use local activities with string names (#745)
2022-03-02 - 2c5ed0f - GRPC Service Proxy and Encoding Interceptor (#738)
2022-03-07 - 8cb1963 - Disable timeout retries during session creation (#746)
2022-03-09 - 8608a59 - Rename PayloadEncoder -> PayloadCodec. (#749)
2022-03-10 - 2a582f8 - Add mock call assertions to TestWorkflowEnvironment (#748)