Releases: temporalio/temporal
v1.6.0
Release Highlights
- Kafka deprecation: Internal queues are now being used for visibility in a dual processor mode. See details below.
- Bug fixed: When using Cassandra persistence, there was an issue that could have lead to Workflow creation without an initial event.
- Other small bug fixes and refactors: See change details.
Deprecate Kafka
UPDATE: Please use v1.6.4 release to migrate out of Kafka.
This release uses internal visibility queues by default, instead of Kafka. New visibility updates will go to the internal visibility queue but the Kafka processor will still be running in order to process previously created messages. This change will provide a smooth migration (no action required) to the internal visibility queue even if you didn't follow the upgrade steps from the previous v1.5.0 release.
In the next release all remaining Kafka code will be completely removed.
Change details
2020-12-23 - 20f01da - Use common rate limiter implementations (#1125)
2020-12-23 - 86ac8dd - Refactor rate limiter (#1118)
2020-12-23 - 8e4ba6d - Add multi-stage throttler (#1122)
2020-12-23 - ca62d18 - Deprecate Kafka for NDC path (#1126)
2020-12-28 - e31771c - Remove unused ResetWorkflowExecution in DB layer (#1137)
2020-12-29 - 4766eed - Bugfix: infinite timeout for SDK compatibility (#1141)
2020-12-29 - 6494477 - Update API and SDK (#1128)
2020-12-30 - 09e7d79 - Remove tools from go.mod dependencies (#1143)
2020-12-30 - 4d935f3 - Fix db scan admin command (#1147)
2020-12-30 - 8217f31 - Add authorization header to context (#1144)
2020-12-30 - 95c6b9a - Deprecate mutable state branch token (#1145)
2020-12-30 - f28f51c - Switch visibility queue to dual processor mode (#1146)
2020-12-31 - 2738ee9 - Refactor Cassandra sessions management (#1148)
2021-01-04 - 5987686 - Switch ES mocks to gomock (#1158)
2021-01-05 - d78c0cf - Parallelizes instantiation of connections to data and visibility stores #1160
2021-01-06 - cad8072 - Update Go SDK to 1.3.0 (#1161)
2021-01-07 - b3b3e7b - Add Elasticsearch v7 support (#1164)
2021-01-07 - f6dee18 - Await Cassandra schema agreement when modifying schema (#1167)
2021-01-08 - 29b5fed - Adds ALPN support for "h2" protocol
2021-01-11 - b9b80cf - Add scanning for corrupt ActivityIds to tctl scan(#1155)
2021-01-12 - b32ddb0 - Drop database/keyspace if exists (#1181)
2021-01-12 - b8667fd - Add 'admin decode proto' and 'admin decode base64' commands (#1180)
2021-01-14 - 39c85db - Bugfix: AppendHistoryNodes return error not correctly set (#1187)
2021-01-14 - d8c74c9 - Add ServiceResolver interface and corresponding ServerOption (#1188)
2021-01-14 - fad7c43 - Update Cassandra cli consistency settings (#1189)
2021-01-15 - c38d8fc - Better retry policy when loading timer tasks (#1193)
2021-01-16 - 38c51a4 - Add force flag to drop command of database tools (#1196)
2021-01-18 - 0070bf0 - Add option to disable visibility queue processor (#1198)
2021-01-18 - 7d29b54 - Decrease list visibility requests log level to Debug (#1199)
2021-01-19 - 1ed8d9b - Fix nil response within admin handler (#1202)
2021-01-19 - ac39909 - Add extra protection logic to passive task processing (#1201)
2021-01-20 - 0eefdbc - Fix duplication handling in ES processor (#1205)
2021-01-20 - d65b356 - Sync non-ES and ES dynamic configs (#1200)
2021-01-20 - e5956ca - Remove visibility sampling for ES (#1204)
2021-01-21 - 1428a3d - Set default ES bulk processor ack timeout to 1 minute (#1210)
2021-01-21 - b46fbe3 - Add ES logger (#1209)
Helpful links to get you started with Temporal
Temporal Docs
Server
Docker Compose
Helm Chart
Docker images for this release (use tag 1.6.0
)
v1.5.2
Release Highlights
This release includes a patch for an issue found in new visibility queue processor logic (you are not affected if you are not using Elasticsearch or use it with Kafka). For details see: #1205, #1210.
Helpful links to get you started with Temporal
Temporal Docs
Server
Docker Compose
Helm Chart
Docker images for this release (use tag 1.5.2
)
v1.5.1
Release Highlights
This release includes a patch for an issue found in infinite timeout feature
For details see: #1141
Helpful links to get you started with Temporal
Temporal Docs
Server
Docker Compose
Helm Chart
Docker images for this release (use tag 1.5.1
)
v1.4.2
Release Highlights
This release includes a patch for an issue found in infinite timeout feature
For details see: #1141
Helpful links to get you started with Temporal
Temporal Docs
Server
Helm Chart
Docker images for this release (use tag 1.4.2
)
v1.5.0
Release Highlights
- The use of Kafka for visibility has been deprecated.
- Authorization code improvements and refactors.
- Small bug fixes.
Schema changes
This release includes schema changes.
Before upgrading your cluster, run the schema tool and upgrade your schema to support version 1.3
. For MySQL databases use: temporal-sql-tool
, for Cassandra use temporal-cassandra-tool
.
Below are a few examples that show how to upgrade "default" and "visibility" schemas for Cassandra.
Run these commands if you "bring your own" database.
temporal-cassandra-tool --tls --tls-ca-file $TLS_CA_FILE --user $CASSANDRA_USER --password $CASSANDRA_PASSWORD \
--endpoint $CASSANDRA_ENDPOINT --keyspace temporal --timeout 120 update --schema-dir ./schema/cassandra/temporal/versioned
temporal-cassandra-tool --tls --tls-ca-file $TLS_CA_FILE --user $CASSANDRA_USER --password $CASSANDRA_PASSWORD \
--endpoint $CASSANDRA_ENDPOINT --keyspace temporal_visibility --timeout 120 update --schema-dir ./schema/cassandra/visibility/versioned
Run these commands if you have a localhost installation:
temporal-cassandra-tool --keyspace temporal update -schema-dir schema/cassandra/temporal/versioned
temporal-cassandra-tool --keyspace temporal_visibility update -schema-dir schema/cassandra/visibility/versioned
Deprecate Kafka
UPDATE: Please use 1.5.5 release to migrate out of Kafka.
Because the use of Kafka is deprecated for visibility, to upgrade to this release in a backward compatible way you must perform the following steps:
- Rollout this release and make sure everything works.
- Add the following to your dynamic config and then perform a rolling restart:
history.visibilityQueue:
- value: "internalWithDualProcessor"
constraints: {}
- Wait for the Kafka visibility queue to drain. You may monitor the Kafka backlog, but 10 minutes should be enough.
- Change the
history.visibilityQueue
dynamic config value frominternalWithDualProcessor
tointernal
:
history.visibilityQueue:
- value: "internal"
constraints: {}
- Perform another rolling restart.
- Kafka and zookeeper are no longer used, and can be removed from the setup.
If it is acceptable to lose some visibility messages you may set the dynamic config value to internal
right away or wait for the next release where the default value will be internal
.
Change details
2020-12-08 - c96de94 - Adjust MySQL binary data upper size limit (#1056)
2020-12-09 - 32924ef - Add visibility tasks table for SQL (#1055)
2020-12-09 - 650beab - Use valid input for wfClient.GetSearchAttributes (#1067)
2020-12-09 - f67c31b - Finish migration of infinite workflow timeout (#1030)
2020-12-10 - 857c4d3 - Properly handle infinite activity timeout for SDK (#1073)
2020-12-10 - ad093b3 - Add explicit TLS settings for system workers while also supporting legacy config (#1059)
2020-12-10 - fab8274 - Bugfix: infinite timeout feature with activity & workflow retry (#1071)
2020-12-11 - 2eb1502 - Add checks for nil claims to defaultAuthorizer (#1074)
2020-12-11 - 55881bf - Replace Kafka for visibility with internal VisibilityQueue (#988)
2020-12-11 - 9ba849a - Adds log whenever we fetch bootstrap hosts for Ringpop from DB (#1076)
2020-12-11 - 9f720f7 - Wire visibility tasks for SQL (#1083)
2020-12-14 - 1abde2a - Correctly config ES for history service (#1094)
2020-12-14 - 61d9f53 - Add CLI command to check cluster health (#1091)
2020-12-14 - 7cb19f6 - Correctly config ES for frontend service (#1095)
2020-12-14 - aec3996 - Enable gRPC reflection for frontend service (#1089)
2020-12-14 - bdddc30 - Add add tasks API to DB layer (#1092)
2020-12-14 - e8f44af - Optimize delete visibility task (#1093)
2020-12-15 - e232832 - Use local quorum for Cassandra when querying schema version (#1099)
2020-12-15 - e5c28cf - Notify new task in shard context (#1097)
2020-12-15 - ff39007 - Add enforcement of namespace match for async completion tokens (#1086)
2020-12-16 - 16cd540 - Replace bool visibility queue dynamic configs with single string config (#1104)
2020-12-16 - 71499bf - Switch to using jose.JSONWebKeySet for parsing JWKS (#1101)
2020-12-16 - df20c7f - Add proper index to SQL visibility store (#1107)
2020-12-17 - 21efba4 - Add Prometheus to development dependencies (#1111)
2020-12-17 - 82ce0b4 - Add support for EC JWT keys (#1108)
2020-12-17 - a92e09b - Log details of authorization errors and return a generic unauthorized error to the caller (#1110)
2020-12-17 - ec1de64 - Properly handling task queue lease expiration (#1112)
2020-12-17 - f73e73c - Fix typo on availability zone env key (#1109)
2020-12-18 - 91e0626 - Use Prometheus as default metrics provider for all configs (#1116)
2020-12-18 - 9cb819d - Add support for extra authorization data (#1113)
2020-12-19 - 1df7e31 - Fix ES processor metrics (#1117)
2020-12-21 - 423adbc - Make metric ids globally unique (#1124)
2020-12-21 - 77acf2c - Fix authorization metrics scope (#1123)
2020-12-21 - 81de03d - Start Kafka producer in dual mode (#1121)
Helpful links to get you started with Temporal
Temporal Docs
Server
Helm Chart
Docker images for this release (use tag 1.5.0
)
v1.4.1
Release Highlights
This release includes a patch for an issue found in infinite timeout feature, i.e. allowing not setting certain timeout: (https://github.com/temporalio/temporal/releases/tag/v1.4.0).
For details see: #1071 #1073
NOTE: Infinite timeout feature will be the default behavior beginning from v1.5.x
The infinite timeout functionality is by default disabled for forward / backward compatibility.
When deploying a brand new v1.4.x Temporal service, user can set "system.enableInfiniteTimeout" to be true.
When upgrading to v1.4.x Temporal service, user must first deploy the v1.4.x service, then set "system.enableInfiniteTimeout" to be true.
- In terms of workflow execution timeout (across multiple continue as new / retry runs), setting the WorkflowExecutionTimeout parameter to 0 means no timeout for workflow execution
- In terms of workflow run timeout (per run ID), setting the WorkflowRunTimeout parameter to 0 means no timeout for this workflow run
- Additional checks from server logic will guarantee that
a. when WorkflowExecutionTimeout > 0 && WorkflowRunTimeout > 0 => WorkflowRunTimeout <= WorkflowExecutionTimeout
b. when WorkflowExecutionTimeout > 0 && WorkflowRunTimeout == 0 => WorkflowRunTimeout = WorkflowExecutionTimeout
c. when WorkflowExecutionTimeout == 0 => no restriction on WorkflowRunTimeout - Activity schedule to start / schedule to close timeout can also be 0 (no timeout) if workflow run timeout is 0 (no timeout)
Helpful links to get you started with Temporal
Temporal Docs
Server
Helm Chart
Docker images for this release (use tag 1.4.1
)
v1.4.0
UPDATE: We have discovered some issue related to v1.4.0 release regarding the infinite timeout feature, please use v1.4.1 instead.
NOTE: The infinite timeout feature is by default disabled for v1.4.x.
Release Highlights
This release contains refactoring, optimizations, bug fixes, metric fixes, support for signed requests to AWS Elastic Search, and significant enhancements to Temporal's Authorization story.
Notable Changes
Persistence Schema:
This release updates the current Persistence store schema. Be sure to upgrade your schema (target version 1.2) before upgrading to the latest server bits.
Authorization:
This release includes a set of features and improvements for authorization. Notably, ClaimMapper and Authorizer plugin interfaces with the corresponding server options for configuring them. This enables a range of authorizations scenarios based on JWT tokens and Mutual TLS certificates. defaultJWTClaimMapper and defaultAuthorizer are included as fully functional examples that can be used as is, or customized for specific use cases. Documentation is in progress.
Change details
2020-11-11 - 62efe4c - Add context to all SQL interfaces (#980)
2020-11-11 - 648016b - NoSQL / SQL specific changes for messages, part 3 (#962)
2020-11-11 - 7ad94fc - Use latest sqlx and dependencies & update SQL max conn config (#951)
2020-11-11 - 7bfb0c4 - Rename RetryReplication in proto (#975)
2020-11-11 - a07f053 - Increase frontend list operation QPS to 30 (#968)
2020-11-11 - c3beeb2 - Allow multiple deleted to DB within one transaction (#970)
2020-11-11 - ce57336 - Refactor replication task fetcher (#966)
2020-11-11 - ddbf982 - NoSQL / SQL specific changes for messages, part 4 (#979)
2020-11-12 - aee2003 - Adds ability to serve different TLS certificates and verify different sets of ClientCert CAs from the same Temporal Cluster (#981)
2020-11-12 - ebbbff0 - Preload config before setting server options, so that they can get configured (#985)
2020-11-16 - 0516335 - Add PostgreSQL to tctl admin commands (#1002)
2020-11-16 - 254c201 - Update stale dynamic config (#999)
2020-11-16 - 3190139 - Fix nil execution stats dereference (#997)
2020-11-16 - 430daa8 - Remove unused ES fields (#991)
2020-11-16 - 7ea6f62 - Pass LastCompletionResult to next run on workflow timeout (#993)
2020-11-16 - 873b510 - Optimize SQL layer supporting batch delete (#982)
2020-11-16 - a9eed10 - Refactor replication task executor (#1001)
2020-11-16 - c11b82e - Update NDC sync activity logic & unit test (#974)
2020-11-17 - 766e890 - Update yaml property name after renaming Security -> Authorization (#1006)
2020-11-17 - da08b3b - Authorization for JWT tokens (#986)
2020-11-18 - 622852f - Refactor replication task processor (#1005)
2020-11-18 - 795c0b6 - Adds ability to connect to Kafka Cluster via SASL SCRAM (SHA256/SHA512) mechanism (#1009)
2020-11-18 - def2f0b - Bugfix: replication DLQ handler mem allocation (#1007)
2020-11-18 - fdad95f - Adds support for configuring AWS ElasticSearch request signing (#1011)
2020-11-19 - 9078e7b - Update replication fetcher & processor (#1010)
2020-11-19 - cec61a9 - Fix broken DescribeHistoryHost API / CLI (#1013)
2020-11-20 - 812d3f3 - Remove forced namespace cache refresh (#1014) (#1016)
2020-11-23 - afd2c29 - Fix typo in json name attribute (#1022)
2020-11-23 - ecade6e - Add TLS connection info to AuthInfo (#1020)
2020-11-24 - 7756ff9 - Perf optimization for NDC (#1019)
2020-11-24 - b168c38 - Set workflow start time within business logic (#1025)
2020-11-24 - b88ecb1 - Optimize activity / user timer creation (#1023)
2020-11-25 - 3e11440 - Allow to specify custom metrics reporter (#1015)
2020-11-25 - a6ce2f4 - Use proper context deadline when pushing activity to matching (#1031)
2020-11-25 - c85a1f0 - Ensure version history values are copied (#1029)
2020-11-26 - e278150 - Use github.com/go-sql-driver/mysql v1.5.0 (#1032)
2020-11-30 - 2b63e6f - Allow workflow timeout being infinite (#995)
2020-11-30 - 4282cf3 - Fix namespace registration response (#1034)
2020-12-01 - 2bdda51 - Add integration tests for cron workflow failures (#994)
2020-12-01 - 94a500e - Fix broken admin dlq CLI (#1038)
2020-12-01 - c5d0144 - Make entity with Start / Stop functions idempotent (#1037)
2020-12-02 - b0c5e6b - Adjust RPC replication config (#1039)
2020-12-02 - dfaf475 - Fix PostgreSQL EnableHostVerification behavior (#1048)
2020-12-03 - 1ac19c1 - Bugfix: messaging client not set when advanced visibility is used (#1053)
2020-12-03 - 58d75ff - Adjust GetHistoryMaxPageSize default size (#1049)
2020-12-03 - 72b9a40 - Do not validate Kafka config if RPC replication stack is used (#1051)
2020-12-03 - 7f9e1c6 - Unify active logic workflow start time vs start event time (#1042)
2020-12-03 - f4cda39 - Allow concurrent fetching replication tasks (#1040)
2020-12-04 - 880287f - Patch metrics reported with different tags. (#1050)
2020-12-04 - f6693f6 - Fix: history_size and event_blob_size metrics should have same tags (#1054)
2020-12-08 - c96de94 - Adjust MySQL binary data upper size limit (#1056)
Helpful links to get you started with Temporal
Temporal Docs
Server
Helm Chart
Docker images for this release (use tag 1.4.0
)
v1.3.2
Release Highlights
This release includes a patch for an issue found in [1.3.1] (https://github.com/temporalio/temporal/releases/tag/v1.3.1).
For details: #1014
Helpful links to get you started with Temporal
Temporal Docs
Server
Helm Chart
Docker images for this release (use tag 1.3.2
)
v1.2.2
Release Highlights
This release includes a patch for an issue found in [1.2.1] (https://github.com/temporalio/temporal/releases/tag/v1.2.1).
For details: #1014
Helpful links to get you started with Temporal
Temporal Docs
Server
Helm Chart
Docker images for this release (use tag 1.2.2
)
v1.3.1
Release Highlights
This release includes a patch for an issue found in 1.3.0.
If you are upgrading from a version older than 1.0.0, use this release (1.3.1) instead of 1.3.0.
Helpful links to get you started with Temporal
Temporal Docs
Server
Helm Chart