releases.shpreview
Temporal/Go SDK

Go SDK

$npx -y @buildinternet/releases show temporal-go-sdk
Mon
Wed
Fri
AprMayJunJulAugSepOctNovDecJanFebMarApr
Less
More
Releases5Avg2/moVersionsv1.39.0 → v1.42.0
Nov 10, 2022

Highlights

Failure Converters

We have added a new API to allow users to customize how errors are serialized and de-serialized to failures.

Schedule API (experimental)

We have added a new API to help users run workflows against a provided schedule.

Specific Changes

2022-09-20 - 077e261 - Skip upsert memo integration tests (#914) 2022-09-21 - 754b253 - Do not call ResetSticky on force eviction (#915) 2022-09-28 - a6a8749 - Support backing off more for resource exhausted (#917) 2022-09-30 - e6a06f2 - Add support for custom failure converters (#924) 2022-10-12 - 14df12c - Add IdempotencyKey start span option (#931) 2022-10-19 - 3f3eca4 - Do not set idempotency key for HandleQuery (#934) 2022-10-31 - 40f7da0 - Add resource exhausted metric with cause (#940) 2022-10-31 - 67b4c87 - Don't use data converter if search attribute value is of Payload type (#913) 2022-11-03 - 66eb848 - Adapt to interaction-based upstream API changes (#944) 2022-11-03 - 97ed634 - Set default max eager activities to 3 (#946) 2022-11-07 - 620fa72 - Provide better custom logger example in README (#911) 2022-11-09 - 8ab62d9 - Add schedule API (#943) 2022-11-10 - 133a6a0 - Remove default limit of overall max eager activities and add max per task (#952)

Nov 9, 2022

(outdated, see v1.18.1)

Sep 9, 2022

Highlights

Connection sharing across clients

A new function is available, client.NewClientFromExisting that can create a client using the same connection as an existing client and a new set of non-connection options.

Upsert memo

Similar to workflow.UpsertSearchAttribute which mutates search attributes from inside the workflow, there is now workflow.UpsertMemo which mutates the workflow memo from inside the workflow. This is only usable with Temporal server versions 1.18+.

Workflow channel utilities

Two new utilities for channels inside of workflow: Channel.Len which is similar to len(ch) in Go, and Channel.ReceiveWithTimeout which supports timing out a channel receive.

Specific Changes

2022-08-10 - 8d5582c - Doc fixes (#879) 2022-08-10 - f150e45 - Share connection across different clients (#881) 2022-08-19 - 3d111e3 - Spawn update coro directly through dispatcher (#885) 2022-08-29 - 74a1b73 - Fix code samples for workflow.SideEffect (#890) 2022-08-29 - 85978da - Fix doc formatting (#892) 2022-08-30 - 7f1b18f - Stop logging poller errors after stop (#894) 2022-08-30 - b5942ae - Sync batch operations api (#889) 2022-09-01 - d1f860c - Handle Client.Close on cloned clients (#893) 2022-09-01 - f4f143c - Expose OperatorService client (#902) 2022-09-02 - e7905ec - Make Worker.Stop reentrant (#906) 2022-09-06 - d884fe6 - Update CODEOWNERS to temporalio/sdk team (#905) 2022-09-07 - 9341009 - Add UpsertMemo API (#883) 2022-09-08 - ffa7590 - Added Channel.Len and Channel.ReceiveWithTimeout (#895)

Aug 8, 2022

Highlights

Eager Activity Execution

Internal optimization that, once enabled on the server, will optimize activity execution by favoring the local activity worker before a remote one.

Specific Changes

2022-06-16 - 706af97 - Update API dep for worker versioning API (#831) 2022-06-22 - 5217d7a - Rename internal_decision_state_machine.go to internal_command_state_machine (#835) 2022-06-22 - 9879dbc - Encode nil query result (#830) 2022-06-28 - 1f60198 - Returning error from Workflow results in Failure (#838) 2022-06-30 - 6a0e7ab - Eager activity execution (#836) 2022-06-30 - 6c4061e - Add interceptors to replayer options (#839) 2022-06-30 - bca4a07 - Add client-side helper to get history from JSON reader (#840) 2022-07-01 - 2f76f4d - Allow any value in the OnUpsertSearchAttribute mock (#841) 2022-07-08 - 3856292 - Concurrency and serialization documentation notes (#848) 2022-07-12 - 7003c83 - Add workflow.GetInfo(ctx).GetCurrentHistoryLength() (#851) 2022-07-13 - c728c6b - Forward compatibility for service proxy (#849) 2022-07-13 - de63fea - Pull in v1.10.0 of go.temporal.io/api (#852) 2022-07-14 - 16cc53e - Support alias disabling during workflow/activity registration (#850) 2022-07-15 - 942edfb - Links updated (#856) 2022-07-21 - 8fe4ad9 - Properly handle absent WFT response for eager activities (#862) 2022-07-22 - dea0cfa - Support really short heartbeat throttling interval (#863) 2022-07-31 - 7151653 - Add workflow update handling (#869) 2022-08-01 - 38b2b69 - Consume api v1.11.0 (#872) 2022-08-05 - 0f9d428 - Unit test fix for Go 1.19 (#877)

Jun 7, 2022

Highlights

Worker fatal errors

Previously when a worker had a fatal error, it sent a SIGINT to its own PID. Now it will stop the worker. If running worker.Worker.Run(), it will return the error and it will also call worker.Options.OnFatalError.

Eager and lazy client API updates

client.NewClient has been deprecated in favor of the clearer client.Dial and client.NewLazyClient. The former does an eager connection and the latter waits until first call made.

  • Deprecated client.NewClient in favor of client.Dial or client.NewLazyClient
  • Add client.Client.CheckHealth call
  • Properly return fatal error

GitHub actions

The project has moved from BuildKite to GitHub actions for all CI builds.

Specific Changes

2022-03-21 - b06c84a - Update docstring to use public alias for workflow.Execution (#752) 2022-03-22 - 55cf584 - Allow remote codec dataconverter to modify request. (#757) 2022-03-24 - 48b3cb9 - GitHub CI action (#760) 2022-03-28 - 567257b - Support OpenMetric-style naming (#756) 2022-03-28 - 5d7ddae - Add cloud test to CI (#763) 2022-03-30 - 1fc476f - Expose underlying message on a few errors (#766) 2022-03-31 - fd0d1eb - Fix histogram naming in prometheus naming scope for tally (#770) 2022-04-13 - 8651550 - Update golang.org/x/tools for 1.18 fix (#776) 2022-04-13 - b866ba9 - Allow data converters to be created without deadlock detection (#772) 2022-04-13 - d10ca68 - SetOnActivityHeartbeatListener on TestActivityEnvironment (#771) 2022-04-19 - 4c3044f - Fix template recursion in workflowcheck (#782) 2022-04-19 - 779d3b2 - Properly paginate when using service for replayer (#783) 2022-04-21 - 8a9ab9a - Remove namespace field from ScheduleActivityTaskCommandAttributes message (#787) 2022-04-21 - a8ef494 - Minor doc fixes (#788) 2022-04-22 - 4e64c51 - Update api reference (#790) 2022-04-25 - 1c9c022 - Fixes for activities in test suite (#780) 2022-04-25 - 7cbd079 - Add task queue to worker metrics (#785) 2022-04-26 - 68a3c41 - Fix goroutine/memory leak on query-only poll responses (#779) 2022-04-29 - 3a2b86e - Use NamespaceNotFound error (#799) 2022-05-02 - 8f11375 - Support disabling run following for workflow results (#791) 2022-05-03 - 7c3777a - Properly set non-determinism as task failure cause (#798) 2022-05-04 - 1db665f - Update max payload size to 128 MB (#796) 2022-05-06 - 3e0b1b5 - Handle FAILED_CAUSE_NAMESPACE_NOT_FOUND (#801) 2022-05-06 - ee5ae6f - Deprecate NewClient, add Dial and NewLazyClient and CheckHealth (#795) 2022-05-06 - fdb99eb - Expose fatal worker error and stop signaling/killing process (#800) 2022-05-13 - 7ccfda6 - Update go.temporal.io/api dependency (#806) 2022-05-16 - d6384b6 - Add update-go-sum target (#807) 2022-05-23 - 41cd853 - Remove BuildKite, add coveralls to GH actions, cleanup other files (#811) 2022-05-25 - 54f4148 - Make mutable side effects work during replay (#809) 2022-05-31 - 4c19b78 - Ignore termination event (#819) 2022-05-31 - e0c50db - Ignore workflow package during determinism checks (#820) 2022-06-03 - 17c0144 - Update go.temporal.io/api to 1.8.0 (#824) 2022-06-06 - e9dd80f - Call OnFatalError for workers using Start (#823)

Mar 10, 2022

Highlights

:boom: 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)

Feb 18, 2022

Highlights

This is a bug-fix patch release.

Bug fix - context cancellation concurrency

In #721 we fixed an issue where two context cancellations may cause a concurrent map read during rare cases.

Bug fix - activity cancellation when already completed

In #726 we fixed a race condition that occurs when activities are completed while cancellations are attempted.

Specific Changes

2022-02-07 - b1c3a91 - Add workflow/activity start time and activity ID to tracing interceptor spans (#715) 2022-02-07 - b5ba1d3 - Support trace logger in workflows & activities (#714) 2022-02-09 - 1837657 - Fix cancellation race condition (#721) 2022-02-11 - edacacb - Address rare custom resolver test race (#725) 2022-02-15 - 69da258 - Add a helper for serving a payload encoder over HTTP. (#717) 2022-02-18 - 2c19379 - Remove pending activity cancellations when activity completion occurs (#726)

Feb 1, 2022

Highlights

Disable workflow worker

Now, workers can be used as activity-only workers only by setting worker.Options.DisableWorkflowWorker as true.

Static analysis tool

See https://github.com/temporalio/sdk-go/tree/master/contrib/tools/workflowcheck

Specific Changes

2021-12-08 - feae29e - Updated SDK version in nested modules (#663) 2021-12-13 - 63bd738 - Support configurable/default heartbeat default/max intervals. (#660) 2021-12-15 - 5e5645f - Header/tracing support for signals and queries (#631) 2021-12-16 - 48386f8 - Support pointer-to-pointer in channel receive (#673) 2021-12-16 - f1153c0 - Set workflow ID from start options in testsuite if given (#674) 2022-01-03 - c281f6a - Address flaky grpc dial and open telemetry tests (#680) 2022-01-04 - 638b0ed - Debug mode does not set the DeadlockDetectionTimeout (#681) 2022-01-05 - 4d67625 - Fix flakiness with OpenTelemetry integration test (#684) 2022-01-06 - 8c434bc - Set Fossa to run non-blocking in buildkite (#683) 2022-01-07 - c32b047 - Add note for OnActivity about method references (#691) 2022-01-13 - 0fa6692 - Add metadata.messageType to protobuf payloads (#693) 2022-01-14 - 93e91e5 - Only respond with activity cancellation when requested by server (#690) 2022-01-18 - 0a00199 - Add ability to disable workflow worker (#689) 2022-01-18 - 147569c - Propagate retry policy for continue-as-new based on the original retry policy (#696) 2022-01-18 - 9616e90 - Increase log level of heartbeat errors (#694) 2022-01-31 - 37f56f0 - Static analysis tool for determinism checking (#702) 2022-01-31 - 4915b0c - Add note for context-aware data converters (#699) 2022-01-31 - cb9c7de - Log poll failures at a higher level (#708)

Dec 8, 2021

Highlights

:boom: There are breaking changes in this release for interceptors, tracing, and metrics. See below for more details.

Interceptor Redesign

The entire package of interceptors has changed to interceptor and now includes many more forms of interceptors beyond just the workflow ones before. The workflow interceptor has also been reworked to match other SDKs.

A new option has been added for client.Options.Interceptors that accepts client-level and worker-level interceptors.

The worker.Options.WorkflowInterceptorChainFactories option has been removed and replaced with Interceptors that accepts worker-level interceptors.

Tracing

In previous versions, OpenTracing was configured via client.Options.Tracer. This option has been removed and tracing is now implemented for both OpenTracing and OpenTelemetry via interceptors in separate modules in go.temporal.io/sdk/contrib/opentracing and go.temporal.io/sdk/contrib/opentelemetry respectively.

If you had previously done:

client.Options.Tracer = myOpenTracingTracer

You would now go get go.temporal.io/sdk/contrib/opentracing and:

tracingInterceptor, err := opentracing.NewInterceptor(opentracing.TracerOptions{Tracer: myOpenTracingTracer})
if err != nil {
  return err
}
client.Options.Interceptors = append(client.Options.Interceptors, tracingInterceptor)

A similar approach is taken with OpenTelemetry. This allows use of your choice of tracing implementation without requiring the primary SDK module to have a dependency on OpenTracing or OpenTelemetry.

Metrics

In previous versions, Tally was configurable directly in client.Options.MetricsScope, available for use inside workflows via workflow.GetMetricsScope, and available for use inside activities via activity.GetMetricsScope.

Now, metrics have been abstracted into a client.MetricsHandler and the client options and calls for obtaining it have changed. Tally has been moved to a separate module at go.temporal.io/sdk/contrib/tally with implementation of client.MetricsHandler.

If you had previously done:

client.Options.MetricsScope = myTallyScope

You would now go get go.temporal.io/sdk/contrib/tally and:

client.Options.MetricsHandler = tally.NewMetricsHandler(myTallyScope)

Also, if you had previously used the Temporal metrics scope to record your own metrics using workflow.GetMetricsScope and/or activity.GetMetricsScope, now you would use workflow.GetMetricsHandler and/or activity.GetMetricsHandler respectively.

Note, the new client.MetricsHandler interface does not abstract histograms as Tally does. If you must still use Temporal-based metrics scope inside of workflows/activities and use histograms, the scope can be re-obtained via tally.ScopeFromHandler. However, for workflows it does not properly skip recording metrics during replay like the previous Tally implementation did. You will need to check for replay before recording the histogram. See tally.ScopeFromHandler documentation for more details.

This abstraction allows use of your choice of metrics implementations without requiring the primary SDK module to have a dependency on Tally.

gRPC Exposure

client.Client now exposes the raw gRPC workflow service via WorkflowService(). Also, client.Options.ConnectionOptions.DialOptions accept gRPC dial options for advanced use cases.

Previously, gRPC was a hidden implementation detail. To match other SDKs, gRPC has been made visible so developers can do advanced gRPC-specific things.

Specific Changes

2021-11-15 - 00a6c49 - Document ambiguous ID and test for mismatch on signal start (#612) 2021-11-15 - 059ec4f - Interceptor Redesign/Rewrite and OpenTelemetry/Opentracing Implementation (#610) 2021-11-16 - 39861e4 - Add a request ID to cancel and signal calls (#633) 2021-11-18 - 4e224d6 - Fix issue for zero-values of pointer arguments in workflows. (#640) 2021-11-19 - be507a3 - Add ability to not wait on child workflows in test suite. (#632) 2021-11-23 - 3eee985 - Update Tally (#652) 2021-11-23 - 651c63c - Add task pool slots remaining metric (#637) 2021-11-23 - 7aac310 - Add mmcshane to CODEOWNERS (#649) 2021-11-23 - 9424898 - Fixed worker.New docs. (#634) 2021-12-01 - f9d61f2 - Add debug log for all errors received from RecordActivityHeartbeat (#657) 2021-12-02 - 6c694d5 - Add GetLogger method to Tracer interface (#655) 2021-12-02 - 960d3e9 - Fix invalid command ID expectation on child workflow cancel (#647) 2021-12-02 - a707cbc - Expose gRPC (#651) 2021-12-03 - 7125db9 - Add a little detail on when heartbeat is seen from the activity side (#650) 2021-12-07 - c453756 - Metrics/tracing dependency abstraction and multi-module repository (#653)

Nov 12, 2021

Highlights:

  • Fix state machine bug that occurs when actions happen after activity cancellation

2021-10-27 - 91235fc - Add bergundy and cretz to list of codeowners (#606) 2021-11-09 - 384e906 - Catch panics in local activities (#622) 2021-11-10 - ae4e3f3 - Bounds check stack trace line indexes (#626) 2021-11-12 - 60db9dc - State machine issue after activity cancellation (#625)

Oct 27, 2021

2021-09-15 - f39757a - Accept interface{} in ByteSlicePayloadConverter (#531) 2021-09-16 - 16bb227 - Start worker even when no workflow/activity registered (#539) 2021-09-17 - 4efeaca - Integration test for local activity retry and workflow heartbeat (#541) 2021-09-17 - ca2954d - Fix local activity retry backoff (#540) 2021-09-21 - 099f80a - Flaky integ test fixes (#542) 2021-09-22 - 80d6163 - Add Dmitry Spikhalskiy to codeowners (#544) 2021-09-23 - 196e3d4 - Adjust timeouts for heartbeat integration test (#545) 2021-09-27 - a5735f7 - Add a test which double checks some cancel-on exit behavior (#559) 2021-09-29 - c354f32 - Skip failing test on Windows (#561) 2021-09-30 - 89c81a3 - Apply default retry policy for local activities (#566) 2021-10-04 - e739f51 - Improve test success when server is slow (fixes #556 and fixes #547) (#565) 2021-10-06 - 4a53bc0 - Confirmation of duplicate workflow ID behavior while running (see #518) (#574) 2021-10-06 - a4c4243 - fix minor typo "loger" (#499) 2021-10-06 - c36d07c - Upgrade github.com/uber-go/tally to v4.0.1. This version is identical to v3.4.2, but uses go.mod. (#562) 2021-10-07 - 2c0af69 - Allow errors in signal interceptors (#564) 2021-10-07 - b52191f - Activity success e2e latency metrics (#575) 2021-10-08 - 662d4c6 - Fix heartbeats recording on activity failure (#578) 2021-10-12 - 47b28b9 - Update error type names in documentation (#584) 2021-10-14 - e24f673 - Make child-workflow-already-started error programmatically discoverable (#581) 2021-10-14 - f33117f - Add unit test for replay with side effect (#590) 2021-10-18 - 345e00b - Support custom converter on workflow replayer (#583) 2021-10-18 - 6bbdd9e - Fix issue where new task was not returned in sticky-disabled scenarios (#589) 2021-10-18 - e38f09d - Store activity result on graceful worker stop (#579) 2021-10-18 - fbe7741 - Document and test custom resolvers (#585) 2021-10-19 - ad43584 - Allow future to unmarshal into pointer of same pointer type set (#593) 2021-10-19 - e168840 - Fix issue with LRU max cache size (#591) 2021-10-20 - 3b59754 - Fix command ordering issue on child workflow cancel (#588) 2021-10-25 - aee63e5 - Change verb to correct type of error (#597) 2021-10-26 - f73a232 - Generic encoding converter with initial zlib implementation (#599)

Sep 15, 2021

2021-08-06 - d12226a - Problems with workflow cancel & command resolutions in same WFT (#504) 2021-08-11 - 233adc6 - Improve error message for proto payload converters (#509) 2021-08-15 - 2c7ca78 - Fixed misleading BackgroundActivityContext comment. (#516) 2021-08-19 - 106f3c7 - Add converter context for client heartbeat and completion calls (#519) 2021-08-29 - 0c69423 - Allow pending goroutines exit after workflow completion (#520) 2021-09-02 - 91e6bd2 - Add inbound interceptors for Signal and Query (#522) 2021-09-03 - 041f5c7 - Follow new execution chain for other event types also (#527)

Aug 6, 2021

Highlights:

  • Expose Maybe() on mock calls (#489)
  • Add local activity info into local activity logger/tracer (#498)
  • Add field accessors for ActivityError (#508)

2021-07-12 - 479826a - Do not allow starting child workflows from an already-cancelled context (#485) 2021-07-15 - db65a29 - Expose Maybe() on mock calls (#489) 2021-07-19 - 82447e4 - Change docker hub repo to temporaliotest (#490) 2021-07-20 - 7abca66 - Fix data race due to deadlock detector (#494) 2021-07-20 - c156fec - Prevent panic from reflect (#493) 2021-07-28 - 6d79cfd - Add local activity info into local activity logger/tracer (#498) 2021-07-29 - 4ba9e5c - Poller backoff a bit more in errors (#501) 2021-08-02 - 6fe2ed7 - Reduce retry aggressivness (#506) 2021-08-03 - 75c27df - Add automatic retry to fossa scans (#507) 2021-08-04 - b735e08 - Add field accessors for ActivityError (#508)

Jul 2, 2021

2021-06-11 - 1ec4432 - Ensure default retry policy in test (#462) 2021-06-16 - 51a526c - Add max message size for grpc messages (#466) 2021-06-16 - a63f4ba - Return activity failure when activity is not registered (#467) 2021-06-18 - a20fa2d - Add ParentClosePolicy to unit test (#471) 2021-06-21 - 9019e38 - parent_policy_terminate (#472) 2021-06-21 - c411d30 - Fix workflow panic when workflow has multiple GetVersion calls (#474) 2021-06-22 - 0550203 - Make deadlock detection timeout configurable (#476) 2021-06-22 - e8455cb - Correct doc on DataConverter (#478) 2021-06-24 - 754c666 - Add missing activity failure metric (#479)

Jun 10, 2021

Highlights:

2021-04-13 - fc2850e - Added WorkflowInfo.StartTime (#402) 2021-04-15 - 4b99c26 - Add gRPC Authority connection option (#409) 2021-04-15 - a0208d7 - Update CONTRIBUTING.md (#408) 2021-04-20 - 429a4a9 - Sync with common.ValidateRetryPolicy (#398) 2021-04-28 - 63856c0 - Updating api-go to bring in permission denial reasons (#419) 2021-04-28 - d9c3c89 - Invoke startedCallback when child workflow failed to start (#418) 2021-05-02 - 1eda847 - Adds PermissionDenied service error to list of non-retryables (#423) 2021-05-05 - 3b92390 - Fixes leak if client is able to open gRPC connection to server, but health check subsequently fails. 2021-05-05 - 9449390 - Enable mock to verify that an activity should not be called (#428) 2021-05-07 - 4df504b - Record End to End Latency Using Activity Task Start Time (#434) 2021-05-07 - b48c897 - Don't add local activity result to the marker if local activity doesn't have return value (#422) 2021-05-10 - 0ef35cb - Updating link to docs in README (#414) 2021-05-11 - 77910cc - Added ability to call local activity using nil struct pointer (#436) 2021-05-12 - d0cc6f8 - Upgrade activity invocation test to use local execution as well (#426) 2021-05-13 - 5f86808 - Add fossa scans (#440) 2021-05-13 - cea0147 - Fix local activity retry max attempts being off by two (#441) 2021-05-18 - 13f5d7a - Fix an empty retry interval in unit tests causing no retries to happen (#446) 2021-05-18 - d33f799 - Indicate RegisterDelayedCallback with 0 delay does not work with queries (#445) 2021-05-25 - 67ea830 - Workers should fail to start if they were stopped before (#450) 2021-05-25 - b434b50 - Filter out DeadlineExceeded error in retry (#448) 2021-05-27 - 0498719 - Health check retry (#453) 2021-05-27 - 5606103 - Activity metrics should include task queue name (#451) 2021-06-07 - 95f8a07 - Propagate cancellation to the client if server is unavailable (#454) 2021-06-08 - 00ce39a - Aggregated request metrics and retry mechanism refactoring (#455) 2021-06-10 - c47dc41 - Rename function (#459)

Apr 9, 2021

Highlights:

  • New log.With function that can prepend every log statement with k/v pairs
  • ResetWorkflowExecution method added to client which calls corresponding gRPC method on the server. Immediately terminates the current workflow execution and resets it to the last workflow task completed event.
  • Allow extracting ChildWorkflowOptions, ActivityOptions, and LocalActivityOptions from workflow.Context
  • Support for context-aware Data Converters, making implementation of things like encryption easier.
  • LocalActivities can be registered and executed by name now like normal Activities
  • Fixes for some possible panics while replaying history for workflows

Changes: 2021-02-26 - a60b67a - Updating dependencies (#373) 2021-02-26 - ef46446 - Update version to 1.6.0 post release (#372) 2021-03-01 - f2c3002 - Add test verifying Select blocks on closed channel (#376) 2021-03-02 - 2c4a82e - Allow ignoring funcs on an activity struct that aren't valid activity functions. (#375) 2021-03-11 - 5bf0710 - Expose log.With func (#381) 2021-03-11 - 738df4e - Rename NopLogger to NoopLogger (#383) 2021-03-11 - c5bb86d - Fix panic when handling version & side effect markers together (#380) 2021-03-16 - 0ec1d86 - Fix an event ordering bug possible with outstanding commands during WF cancel (#382) 2021-03-18 - 7e3edb0 - Fix ReplayLogger.With to expand keyvals in variadic function parameters (#384) 2021-03-18 - a39bbe8 - Return error interface not concrete error type (#386) 2021-03-23 - cec615e - Fix proto payload conveter selection logic (#387) 2021-03-26 - 83d640e - Support extracting workflow and activity options from context (#388) 2021-03-29 - 4300d35 - fixed timeout comment (#392) 2021-03-29 - 9c385c0 - Updated ActivityOptions.ScheduleToStartTimeout comment (#394) 2021-03-30 - 91db6e6 - Add QueryWorkflowByID to TestWorkflowEnvironment (#391) 2021-04-01 - d46c109 - Support for context-aware data converters. (#393) 2021-04-01 - fee5fb6 - Support executing local activities by name (#397) 2021-04-02 - 6580cbe - Add ResetWorkflowExecution method to the client (#400) 2021-04-02 - f4384a5 - Fix typo in CONTRIBUTING.md (#399) 2021-04-06 - c628458 - Updated timeout property documentation (#401)

Feb 27, 2021

Highlights:

  • Added support for custom gRPC headers that can be used to pass auth tokens.
  • [opt-in] Users can now specify keep alive configuration for gRPC connections to the server in order to detect dead connections if server closes them abruptly.
  • Couple bug fixes.

Changes: 2021-02-10 - a97e3b2 - Panic when Invalid Struct is Registered (#361) 2021-02-15 - 000fce6 - Update workflow package registration notes (#355) 2021-02-17 - cba4548 - Fixes a possible panic when server resp is missing workflow type (#364) 2021-02-19 - 80e324b - Use raw JSON to convert payload to string (#366) 2021-02-22 - 8e45a8d - Set Local Activity result to empty not nil (#367) 2021-02-23 - 2245a30 - Adding support for custom gRPC headers (#368) 2021-02-24 - 50a785d - Use go 1.16 (#369) 2021-02-25 - eccb99a - Add keep alive to gRPC connection (#370) 2021-02-26 - 555111c - Make keep alive configurable and opt-in (#371)

Jan 25, 2021
  • 2021-01-25 - 629466c - Fix a possible panic if an activity is scheduled and cancelled within the same workflow task (#350)
Jan 21, 2021
  • 2021-01-21 - d87457a - Rename task queue metric tag (#345)
  • 2021-01-20 - 75a589d - Fix child workflow cancel invalid fsm transition (#344)
  • 2021-01-19 - 3e18a77 - Access last run details (#342)
  • 2021-01-19 - f1b6a72 - Add IsContinueAsNewError For Checking Errors in Tests (#337)
  • 2021-01-19 - aa57d25 - Bump minor SDKVersion to follow new release process (#340)
  • 2021-01-19 - b71e2d5 - Enable proto converted by default (#339)
  • 2021-01-18 - 6ed1ad3 - Exposed error/failure conversion to internalbindings (#332)
  • 2021-01-13 - 8d58517 - Adding codeowners (#338)
  • 2021-01-12 - 5fb8d51 - tweak (#334)
  • 2021-01-11 - c05dbb3 - Move Buildkite files (#331)
  • 2021-01-11 - 67d8f3b - Fix panic when calling GetWorkflow (#333)
  • 2021-01-10 - 1c882f7 - Adding debug mode (#330)
Jan 7, 2021

Release details

2020-11-10 - 6e1331b - Deadlock detector (#285) 2020-11-23 - df75d9d - Opened missing types from WorkflowEnvironment (#296) 2020-11-24 - 06e1ca5 - Implement GetLastFailure API (#293) 2020-11-24 - 1b8dc77 - Fixes additional deadlock issues with respect to local activities #298 2020-11-24 - 569d0d4 - Fix GetWorkflow to provide latest run id if none was provided to it (#294) 2020-11-24 - 7ab858f - Fixes issue where a deadlock detected via a Workflow Execution resumed from a Local Activity Completion fails the Workflow (#297) 2020-11-27 - 35529c0 - Replaces time.After() usage with time.NewTimer() to reduce memory pressure due to allocated timers (#300) 2020-12-07 - d96130d - Set namespace field in async task completion and heartbeat requests (#304) 2020-12-09 - de465a9 - Updated ExecuteActivity doc to show struct member invocation. (#290) 2020-12-10 - 574fd84 - Properly handle infinite activity timeout (#308) 2020-12-10 - a0afa20 - Added missing types for LocalActivity into internalbindings (#299) 2020-12-11 - 4e4813b - Fix cancellation of a command before it is sent to server causing panic (#302) 2020-12-15 - aefccf9 - updating references to activity.Register, uppercase for component/concept names (#306) 2020-12-15 - c650975 - Pass namespace with activity heartbeats (#311) 2020-12-17 - 2c8dc43 - Fix spurious nil derefs on retrying local activities (#303) 2020-12-18 - 07d4f15 - Retry channel wasn't being initialized properly - fix that. (#314) 2020-12-21 - 4fd761a - Adding an option to allow starting local activity worker only (#312) 2020-12-21 - d1ec38e - Stop using a global, infinite-life workflow cache (#310) 2020-12-24 - 7286159 - Ensure workflow already started/finished errors are propagated back to user (#317) 2020-12-28 - 4f37b7f - Added Selector.HasPending (#319) 2020-12-28 - ca5205b - Added Attempt tag to logs (#320) 2020-12-29 - 0e6bf42 - Deprecate & disable DisableStickyExecution flag (#318) 2020-12-29 - 56a1a18 - Child workflow cancellation unusual event ordering bugfix (#323) 2020-12-29 - c613977 - PHP-SDK: PurgeStickyWorkflowCache, worker.Identity, debug messages (#322) 2021-01-04 - 0811d35 - Cleanup of ContinueAsNewError (#326)

Breaking changes

No breaking changes.

Helpful links to get you started with Temporal Go SDK

Temporal Docs Server Go Samples Helm Chart

Latest
v1.42.0
Tracking Since
Mar 31, 2020
Last fetched Apr 18, 2026