@temporalio/core-bridge 0.19.2 → 0.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Cargo.lock +90 -157
- package/Cargo.toml +1 -0
- package/index.d.ts +11 -27
- package/package.json +3 -3
- package/releases/aarch64-apple-darwin/index.node +0 -0
- package/releases/aarch64-unknown-linux-gnu/index.node +0 -0
- package/releases/x86_64-apple-darwin/index.node +0 -0
- package/releases/x86_64-pc-windows-msvc/index.node +0 -0
- package/releases/x86_64-unknown-linux-gnu/index.node +0 -0
- package/sdk-core/.buildkite/docker/Dockerfile +1 -1
- package/sdk-core/.buildkite/docker/docker-compose.yaml +1 -1
- package/sdk-core/.cargo/config.toml +1 -0
- package/sdk-core/CODEOWNERS +1 -1
- package/sdk-core/bridge-ffi/include/sdk-core-bridge.h +119 -86
- package/sdk-core/bridge-ffi/src/lib.rs +311 -315
- package/sdk-core/bridge-ffi/src/wrappers.rs +108 -113
- package/sdk-core/client/Cargo.toml +13 -9
- package/sdk-core/client/LICENSE.txt +23 -0
- package/sdk-core/client/src/lib.rs +286 -174
- package/sdk-core/client/src/metrics.rs +86 -12
- package/sdk-core/client/src/raw.rs +566 -0
- package/sdk-core/client/src/retry.rs +137 -99
- package/sdk-core/core/Cargo.toml +15 -10
- package/sdk-core/core/LICENSE.txt +23 -0
- package/sdk-core/core/benches/workflow_replay.rs +79 -0
- package/sdk-core/core/src/abstractions.rs +38 -0
- package/sdk-core/core/src/core_tests/activity_tasks.rs +108 -182
- package/sdk-core/core/src/core_tests/child_workflows.rs +16 -11
- package/sdk-core/core/src/core_tests/determinism.rs +24 -12
- package/sdk-core/core/src/core_tests/local_activities.rs +53 -27
- package/sdk-core/core/src/core_tests/mod.rs +30 -43
- package/sdk-core/core/src/core_tests/queries.rs +82 -81
- package/sdk-core/core/src/core_tests/workers.rs +111 -296
- package/sdk-core/core/src/core_tests/workflow_cancels.rs +4 -4
- package/sdk-core/core/src/core_tests/workflow_tasks.rs +257 -242
- package/sdk-core/core/src/lib.rs +73 -318
- package/sdk-core/core/src/pollers/mod.rs +4 -6
- package/sdk-core/core/src/pollers/poll_buffer.rs +20 -14
- package/sdk-core/core/src/protosext/mod.rs +7 -10
- package/sdk-core/core/src/replay/mod.rs +11 -150
- package/sdk-core/core/src/telemetry/metrics.rs +35 -2
- package/sdk-core/core/src/telemetry/mod.rs +49 -16
- package/sdk-core/core/src/telemetry/prometheus_server.rs +14 -35
- package/sdk-core/core/src/test_help/mod.rs +104 -170
- package/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +57 -34
- package/sdk-core/core/src/worker/activities/local_activities.rs +95 -23
- package/sdk-core/core/src/worker/activities.rs +23 -16
- package/sdk-core/core/src/worker/client/mocks.rs +86 -0
- package/sdk-core/core/src/worker/client.rs +209 -0
- package/sdk-core/core/src/worker/mod.rs +207 -108
- package/sdk-core/core/src/workflow/driven_workflow.rs +21 -6
- package/sdk-core/core/src/workflow/history_update.rs +107 -24
- package/sdk-core/core/src/workflow/machines/activity_state_machine.rs +2 -3
- package/sdk-core/core/src/workflow/machines/child_workflow_state_machine.rs +2 -3
- package/sdk-core/core/src/workflow/machines/mod.rs +20 -17
- package/sdk-core/core/src/workflow/machines/signal_external_state_machine.rs +56 -19
- package/sdk-core/core/src/workflow/machines/transition_coverage.rs +5 -0
- package/sdk-core/core/src/workflow/machines/upsert_search_attributes_state_machine.rs +230 -22
- package/sdk-core/core/src/workflow/machines/workflow_machines.rs +81 -115
- package/sdk-core/core/src/workflow/machines/workflow_task_state_machine.rs +4 -4
- package/sdk-core/core/src/workflow/mod.rs +13 -1
- package/sdk-core/core/src/workflow/workflow_tasks/concurrency_manager.rs +70 -11
- package/sdk-core/core/src/workflow/workflow_tasks/mod.rs +65 -41
- package/sdk-core/core-api/Cargo.toml +9 -1
- package/sdk-core/core-api/LICENSE.txt +23 -0
- package/sdk-core/core-api/src/errors.rs +7 -38
- package/sdk-core/core-api/src/lib.rs +44 -52
- package/sdk-core/core-api/src/worker.rs +10 -2
- package/sdk-core/etc/deps.svg +127 -96
- package/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +11 -7
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +10 -0
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +6 -1
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +6 -0
- package/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +6 -0
- package/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +2 -1
- package/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +3 -0
- package/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +12 -0
- package/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +25 -0
- package/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +4 -0
- package/sdk-core/protos/local/temporal/sdk/core/bridge/bridge.proto +19 -35
- package/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +2 -6
- package/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +53 -11
- package/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +14 -7
- package/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +3 -5
- package/sdk-core/sdk/Cargo.toml +16 -2
- package/sdk-core/sdk/LICENSE.txt +23 -0
- package/sdk-core/sdk/src/interceptors.rs +11 -0
- package/sdk-core/sdk/src/lib.rs +139 -151
- package/sdk-core/sdk/src/workflow_context/options.rs +86 -1
- package/sdk-core/sdk/src/workflow_context.rs +36 -17
- package/sdk-core/sdk/src/workflow_future.rs +19 -25
- package/sdk-core/sdk-core-protos/Cargo.toml +1 -1
- package/sdk-core/sdk-core-protos/build.rs +1 -0
- package/sdk-core/sdk-core-protos/src/history_info.rs +17 -4
- package/sdk-core/sdk-core-protos/src/lib.rs +251 -47
- package/sdk-core/test-utils/Cargo.toml +3 -1
- package/sdk-core/test-utils/src/canned_histories.rs +27 -0
- package/sdk-core/test-utils/src/histfetch.rs +3 -3
- package/sdk-core/test-utils/src/lib.rs +223 -68
- package/sdk-core/tests/integ_tests/client_tests.rs +27 -4
- package/sdk-core/tests/integ_tests/heartbeat_tests.rs +93 -14
- package/sdk-core/tests/integ_tests/polling_tests.rs +18 -12
- package/sdk-core/tests/integ_tests/queries_tests.rs +50 -53
- package/sdk-core/tests/integ_tests/workflow_tests/activities.rs +117 -103
- package/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +8 -1
- package/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +10 -5
- package/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +7 -1
- package/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +32 -9
- package/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +7 -1
- package/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +76 -15
- package/sdk-core/tests/integ_tests/workflow_tests/patches.rs +19 -3
- package/sdk-core/tests/integ_tests/workflow_tests/replay.rs +39 -42
- package/sdk-core/tests/integ_tests/workflow_tests/resets.rs +84 -0
- package/sdk-core/tests/integ_tests/workflow_tests/signals.rs +30 -8
- package/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +21 -6
- package/sdk-core/tests/integ_tests/workflow_tests/timers.rs +26 -16
- package/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +66 -0
- package/sdk-core/tests/integ_tests/workflow_tests.rs +78 -74
- package/sdk-core/tests/load_tests.rs +9 -6
- package/sdk-core/tests/main.rs +43 -10
- package/src/conversions.rs +7 -12
- package/src/lib.rs +322 -357
- package/sdk-core/client/src/mocks.rs +0 -167
- package/sdk-core/core/src/worker/dispatcher.rs +0 -171
- package/sdk-core/protos/local/temporal/sdk/core/bridge/service.proto +0 -61
|
@@ -2,39 +2,25 @@ pub mod errors;
|
|
|
2
2
|
pub mod worker;
|
|
3
3
|
|
|
4
4
|
use crate::{
|
|
5
|
-
errors::{
|
|
6
|
-
CompleteActivityError, CompleteWfError, PollActivityError, PollWfError,
|
|
7
|
-
WorkerRegistrationError,
|
|
8
|
-
},
|
|
5
|
+
errors::{CompleteActivityError, CompleteWfError, PollActivityError, PollWfError},
|
|
9
6
|
worker::WorkerConfig,
|
|
10
7
|
};
|
|
11
8
|
use log::Level;
|
|
12
|
-
use
|
|
13
|
-
|
|
14
|
-
time::{Duration, SystemTime, UNIX_EPOCH},
|
|
15
|
-
};
|
|
16
|
-
use temporal_client::ServerGatewayApis;
|
|
9
|
+
use opentelemetry::metrics::Meter;
|
|
10
|
+
use std::time::{Duration, SystemTime, UNIX_EPOCH};
|
|
17
11
|
use temporal_sdk_core_protos::coresdk::{
|
|
18
12
|
activity_task::ActivityTask, workflow_activation::WorkflowActivation,
|
|
19
13
|
workflow_completion::WorkflowActivationCompletion, ActivityHeartbeat, ActivityTaskCompletion,
|
|
20
14
|
};
|
|
21
15
|
|
|
22
|
-
/// This trait is the primary way by which language specific SDKs interact with the core SDK.
|
|
23
|
-
///
|
|
24
|
-
///
|
|
16
|
+
/// This trait is the primary way by which language specific SDKs interact with the core SDK.
|
|
17
|
+
/// It represents one worker, which has a (potentially shared) client for connecting to the service
|
|
18
|
+
/// and is bound to a specific task queue.
|
|
25
19
|
#[async_trait::async_trait]
|
|
26
|
-
pub trait
|
|
27
|
-
///
|
|
28
|
-
///
|
|
29
|
-
///
|
|
30
|
-
fn register_worker(&self, config: WorkerConfig) -> Result<(), WorkerRegistrationError>;
|
|
31
|
-
|
|
32
|
-
/// Ask the core for some work, returning a [WorkflowActivation]. It is then the language SDK's
|
|
33
|
-
/// responsibility to call the appropriate workflow code with the provided inputs. Blocks
|
|
34
|
-
/// indefinitely until such work is available or [Core::shutdown] is called.
|
|
35
|
-
///
|
|
36
|
-
/// The returned activation is guaranteed to be for the same task queue / worker which was
|
|
37
|
-
/// provided as the `task_queue` argument.
|
|
20
|
+
pub trait Worker: Send + Sync {
|
|
21
|
+
/// Ask the worker for some work, returning a [WorkflowActivation]. It is then the language
|
|
22
|
+
/// SDK's responsibility to call the appropriate workflow code with the provided inputs. Blocks
|
|
23
|
+
/// indefinitely until such work is available or [Worker::shutdown] is called.
|
|
38
24
|
///
|
|
39
25
|
/// It is important to understand that all activations must be responded to. There can only
|
|
40
26
|
/// be one outstanding activation for a particular run of a workflow at any time. If an
|
|
@@ -48,49 +34,41 @@ pub trait Core: Send + Sync {
|
|
|
48
34
|
///
|
|
49
35
|
/// It is rarely a good idea to call poll concurrently. It handles polling the server
|
|
50
36
|
/// concurrently internally.
|
|
51
|
-
|
|
52
|
-
/// TODO: Examples
|
|
53
|
-
async fn poll_workflow_activation(
|
|
54
|
-
&self,
|
|
55
|
-
task_queue: &str,
|
|
56
|
-
) -> Result<WorkflowActivation, PollWfError>;
|
|
37
|
+
async fn poll_workflow_activation(&self) -> Result<WorkflowActivation, PollWfError>;
|
|
57
38
|
|
|
58
|
-
/// Ask the
|
|
39
|
+
/// Ask the worker for some work, returning an [ActivityTask]. It is then the language SDK's
|
|
59
40
|
/// responsibility to call the appropriate activity code with the provided inputs. Blocks
|
|
60
|
-
/// indefinitely until such work is available or [
|
|
41
|
+
/// indefinitely until such work is available or [Worker::shutdown] is called.
|
|
61
42
|
///
|
|
62
43
|
/// The returned activation is guaranteed to be for the same task queue / worker which was
|
|
63
44
|
/// provided as the `task_queue` argument.
|
|
64
45
|
///
|
|
65
46
|
/// It is rarely a good idea to call poll concurrently. It handles polling the server
|
|
66
47
|
/// concurrently internally.
|
|
67
|
-
|
|
68
|
-
/// TODO: Examples
|
|
69
|
-
async fn poll_activity_task(&self, task_queue: &str)
|
|
70
|
-
-> Result<ActivityTask, PollActivityError>;
|
|
48
|
+
async fn poll_activity_task(&self) -> Result<ActivityTask, PollActivityError>;
|
|
71
49
|
|
|
72
|
-
/// Tell the
|
|
50
|
+
/// Tell the worker that a workflow activation has completed. May be freely called concurrently.
|
|
73
51
|
async fn complete_workflow_activation(
|
|
74
52
|
&self,
|
|
75
53
|
completion: WorkflowActivationCompletion,
|
|
76
54
|
) -> Result<(), CompleteWfError>;
|
|
77
55
|
|
|
78
|
-
/// Tell the
|
|
56
|
+
/// Tell the worker that an activity has finished executing. May be freely called concurrently.
|
|
79
57
|
async fn complete_activity_task(
|
|
80
58
|
&self,
|
|
81
59
|
completion: ActivityTaskCompletion,
|
|
82
60
|
) -> Result<(), CompleteActivityError>;
|
|
83
61
|
|
|
84
|
-
/// Notify
|
|
85
|
-
/// than `activity_heartbeat_timeout` to finish must call this function in order to
|
|
86
|
-
/// progress, otherwise the activity will timeout and a new attempt will be scheduled.
|
|
62
|
+
/// Notify the Temporal service that an activity is still alive. Long running activities that
|
|
63
|
+
/// take longer than `activity_heartbeat_timeout` to finish must call this function in order to
|
|
64
|
+
/// report progress, otherwise the activity will timeout and a new attempt will be scheduled.
|
|
87
65
|
///
|
|
88
66
|
/// The first heartbeat request will be sent immediately, subsequent rapid calls to this
|
|
89
67
|
/// function will result in heartbeat requests being aggregated and the last one received during
|
|
90
68
|
/// the aggregation period will be sent to the server, where that period is defined as half the
|
|
91
69
|
/// heartbeat timeout.
|
|
92
70
|
///
|
|
93
|
-
/// Unlike
|
|
71
|
+
/// Unlike Java/Go SDKs we do not return cancellation status as part of heartbeat response and
|
|
94
72
|
/// instead send it as a separate activity task to the lang, decoupling heartbeat and
|
|
95
73
|
/// cancellation processing.
|
|
96
74
|
///
|
|
@@ -104,27 +82,36 @@ pub trait Core: Send + Sync {
|
|
|
104
82
|
|
|
105
83
|
/// Request that a workflow be evicted by its run id. This will generate a workflow activation
|
|
106
84
|
/// with the eviction job inside it to be eventually returned by
|
|
107
|
-
/// [
|
|
85
|
+
/// [Worker::poll_workflow_activation]. If the workflow had any existing outstanding activations,
|
|
108
86
|
/// such activations are invalidated and subsequent completions of them will do nothing and log
|
|
109
87
|
/// a warning.
|
|
110
|
-
fn request_workflow_eviction(&self,
|
|
88
|
+
fn request_workflow_eviction(&self, run_id: &str);
|
|
89
|
+
|
|
90
|
+
/// Return this worker's config
|
|
91
|
+
fn get_config(&self) -> &WorkerConfig;
|
|
111
92
|
|
|
112
|
-
///
|
|
113
|
-
fn
|
|
93
|
+
/// TODO: Will be replaced/fixed/whatever by shutdown refactoring
|
|
94
|
+
fn initiate_shutdown(&self);
|
|
114
95
|
|
|
115
96
|
/// Initiates async shutdown procedure, eventually ceases all polling of the server and shuts
|
|
116
|
-
/// down
|
|
97
|
+
/// down this worker. [Worker::poll_workflow_activation] should be called until it
|
|
117
98
|
/// returns [PollWfError::ShutDown] to ensure that any workflows which are still undergoing
|
|
118
99
|
/// replay have an opportunity to finish. This means that the lang sdk will need to call
|
|
119
|
-
/// [
|
|
120
|
-
/// the lang SDK can end the process, or drop the [
|
|
100
|
+
/// [Worker::complete_workflow_activation] for those workflows until they are done. At that point,
|
|
101
|
+
/// the lang SDK can end the process, or drop the [Worker] instance, which will close the
|
|
121
102
|
/// connection.
|
|
122
103
|
async fn shutdown(&self);
|
|
123
104
|
|
|
124
|
-
///
|
|
125
|
-
/// to
|
|
126
|
-
|
|
105
|
+
/// Completes shutdown and frees all resources. You should avoid simply dropping workers, as
|
|
106
|
+
/// this does not allow async tasks to report any panics that may have occurred cleanly.
|
|
107
|
+
///
|
|
108
|
+
/// This should be called only after [Worker::shutdown] has resolved.
|
|
109
|
+
async fn finalize_shutdown(self);
|
|
110
|
+
}
|
|
127
111
|
|
|
112
|
+
/// Should be backed by a process-wide singleton who is responsible for telemetry and logging
|
|
113
|
+
/// management.
|
|
114
|
+
pub trait CoreTelemetry {
|
|
128
115
|
/// Core buffers logs that should be shuttled over to lang so that they may be rendered with
|
|
129
116
|
/// the user's desired logging library. Use this function to grab the most recent buffered logs
|
|
130
117
|
/// since the last time it was called. A fixed number of such logs are retained at maximum, with
|
|
@@ -133,6 +120,11 @@ pub trait Core: Send + Sync {
|
|
|
133
120
|
/// Returns the list of logs from oldest to newest. Returns an empty vec if the feature is not
|
|
134
121
|
/// configured.
|
|
135
122
|
fn fetch_buffered_logs(&self) -> Vec<CoreLog>;
|
|
123
|
+
|
|
124
|
+
/// If metrics gathering is enabled, returns the OTel meter for core telemetry, which can be
|
|
125
|
+
/// used to create metrics instruments, or passed to things that create/record metrics (ex:
|
|
126
|
+
/// clients).
|
|
127
|
+
fn get_metric_meter(&self) -> Option<&Meter>;
|
|
136
128
|
}
|
|
137
129
|
|
|
138
130
|
/// A log line (which ultimately came from a tracing event) exported from Core->Lang
|
|
@@ -4,8 +4,9 @@ use std::time::Duration;
|
|
|
4
4
|
#[derive(Debug, Clone, derive_builder::Builder)]
|
|
5
5
|
#[builder(setter(into), build_fn(validate = "Self::validate"))]
|
|
6
6
|
#[non_exhaustive]
|
|
7
|
-
// TODO: per-second queue limits
|
|
8
7
|
pub struct WorkerConfig {
|
|
8
|
+
/// The Temporal service namespace this worker is bound to
|
|
9
|
+
pub namespace: String,
|
|
9
10
|
/// What task queue will this worker poll from? This task queue name will be used for both
|
|
10
11
|
/// workflow and activity polling.
|
|
11
12
|
pub task_queue: String,
|
|
@@ -45,7 +46,7 @@ pub struct WorkerConfig {
|
|
|
45
46
|
#[builder(default = "5")]
|
|
46
47
|
pub max_concurrent_at_polls: usize,
|
|
47
48
|
/// If set to true this worker will only handle workflow tasks and local activities, it will not
|
|
48
|
-
/// poll for activity tasks.
|
|
49
|
+
/// poll for activity tasks.
|
|
49
50
|
#[builder(default = "false")]
|
|
50
51
|
pub no_remote_activities: bool,
|
|
51
52
|
/// How long a workflow task is allowed to sit on the sticky queue before it is timed out
|
|
@@ -63,6 +64,13 @@ pub struct WorkerConfig {
|
|
|
63
64
|
/// `heartbeat_timeout * 0.8`.
|
|
64
65
|
#[builder(default = "Duration::from_secs(30)")]
|
|
65
66
|
pub default_heartbeat_throttle_interval: Duration,
|
|
67
|
+
|
|
68
|
+
/// Sets the maximum number of activities per second the task queue will dispatch, controlled
|
|
69
|
+
/// server-side. Note that this only takes effect upon an activity poll request. If multiple
|
|
70
|
+
/// workers on the same queue have different values set, they will thrash with the last poller
|
|
71
|
+
/// winning.
|
|
72
|
+
#[builder(setter(strip_option), default)]
|
|
73
|
+
pub max_task_queue_activities_per_second: Option<f64>,
|
|
66
74
|
}
|
|
67
75
|
|
|
68
76
|
impl WorkerConfig {
|
package/sdk-core/etc/deps.svg
CHANGED
|
@@ -1,156 +1,187 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
2
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
3
3
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
-
<!-- Generated by graphviz version 2.
|
|
4
|
+
<!-- Generated by graphviz version 2.43.0 (0)
|
|
5
5
|
-->
|
|
6
|
-
<!-- Pages: 1 -->
|
|
7
|
-
<svg width="
|
|
8
|
-
viewBox="0.00 0.00
|
|
9
|
-
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4
|
|
10
|
-
<
|
|
6
|
+
<!-- Title: %3 Pages: 1 -->
|
|
7
|
+
<svg width="525pt" height="476pt"
|
|
8
|
+
viewBox="0.00 0.00 524.50 476.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
9
|
+
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 472)">
|
|
10
|
+
<title>%3</title>
|
|
11
|
+
<polygon fill="white" stroke="transparent" points="-4,4 -4,-472 520.5,-472 520.5,4 -4,4"/>
|
|
11
12
|
<!-- 0 -->
|
|
12
13
|
<g id="node1" class="node">
|
|
13
14
|
<title>0</title>
|
|
14
|
-
<polygon fill="none" stroke="black" points="
|
|
15
|
-
<text text-anchor="middle" x="
|
|
15
|
+
<polygon fill="none" stroke="black" points="173,-468 0,-468 0,-432 173,-432 173,-468"/>
|
|
16
|
+
<text text-anchor="middle" x="86.5" y="-446.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-bridge-ffi</text>
|
|
16
17
|
</g>
|
|
17
18
|
<!-- 1 -->
|
|
18
19
|
<g id="node2" class="node">
|
|
19
20
|
<title>1</title>
|
|
20
|
-
<polygon fill="none" stroke="black" points="
|
|
21
|
-
<text text-anchor="middle" x="
|
|
21
|
+
<polygon fill="none" stroke="black" points="369.5,-396 253.5,-396 253.5,-360 369.5,-360 369.5,-396"/>
|
|
22
|
+
<text text-anchor="middle" x="311.5" y="-374.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core</text>
|
|
22
23
|
</g>
|
|
23
24
|
<!-- 0->1 -->
|
|
24
25
|
<g id="edge1" class="edge">
|
|
25
26
|
<title>0->1</title>
|
|
26
|
-
<path fill="none" stroke="black" d="
|
|
27
|
-
<polygon fill="black" stroke="black" points="
|
|
28
|
-
</g>
|
|
29
|
-
<!-- 4 -->
|
|
30
|
-
<g id="node3" class="node">
|
|
31
|
-
<title>4</title>
|
|
32
|
-
<polygon fill="none" stroke="black" points="214,-108 114,-108 114,-72 214,-72 214,-108"/>
|
|
33
|
-
<text text-anchor="middle" x="164" y="-86.3" font-family="Times,serif" font-size="14.00">temporal-client</text>
|
|
34
|
-
</g>
|
|
35
|
-
<!-- 0->4 -->
|
|
36
|
-
<g id="edge2" class="edge">
|
|
37
|
-
<title>0->4</title>
|
|
38
|
-
<path fill="none" stroke="black" d="M181.7,-359.96C171.44,-325.92 157.74,-247.02 153,-180 151.87,-164.04 152.7,-160 153,-144 153.16,-135.58 153.46,-126.42 154.19,-118.12"/>
|
|
39
|
-
<polygon fill="black" stroke="black" points="157.67,-118.52 155.37,-108.18 150.71,-117.7 157.67,-118.52"/>
|
|
40
|
-
</g>
|
|
41
|
-
<!-- 0->4 -->
|
|
42
|
-
<g id="edge3" class="edge">
|
|
43
|
-
<title>0->4</title>
|
|
44
|
-
<path fill="none" stroke="blue" d="M191.8,-359.96C189.44,-325.92 175.74,-247.02 171,-180 169.87,-164.04 170.7,-160 171,-144 171.16,-135.68 171.45,-126.63 171.37,-118.4"/>
|
|
45
|
-
<polygon fill="blue" stroke="blue" points="174.86,-118.05 171.01,-108.18 167.87,-118.3 174.86,-118.05"/>
|
|
46
|
-
</g>
|
|
47
|
-
<!-- 5 -->
|
|
48
|
-
<g id="node4" class="node">
|
|
49
|
-
<title>5</title>
|
|
50
|
-
<polygon fill="none" stroke="black" points="319.5,-36 164.5,-36 164.5,0 319.5,0 319.5,-36"/>
|
|
51
|
-
<text text-anchor="middle" x="242" y="-14.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-protos</text>
|
|
52
|
-
</g>
|
|
53
|
-
<!-- 0->5 -->
|
|
54
|
-
<g id="edge6" class="edge">
|
|
55
|
-
<title>0->5</title>
|
|
56
|
-
<path fill="none" stroke="black" d="M165.88,-359.82C135.16,-335.73 86,-288.78 86,-235 86,-235 86,-235 86,-161 86,-120.55 78.76,-102.78 105,-72 118.09,-56.64 136.18,-45.72 154.93,-37.95"/>
|
|
57
|
-
<polygon fill="black" stroke="black" points="156.39,-41.14 164.46,-34.27 153.87,-34.6 156.39,-41.14"/>
|
|
27
|
+
<path fill="none" stroke="black" d="M141.25,-431.97C173.1,-422.06 213.42,-409.51 246.83,-399.12"/>
|
|
28
|
+
<polygon fill="black" stroke="black" points="247.99,-402.42 256.5,-396.11 245.91,-395.74 247.99,-402.42"/>
|
|
58
29
|
</g>
|
|
59
30
|
<!-- 6 -->
|
|
60
31
|
<g id="node5" class="node">
|
|
61
32
|
<title>6</title>
|
|
62
|
-
<polygon fill="none" stroke="black" points="
|
|
63
|
-
<text text-anchor="middle" x="
|
|
33
|
+
<polygon fill="none" stroke="black" points="401,-36 246,-36 246,0 401,0 401,-36"/>
|
|
34
|
+
<text text-anchor="middle" x="323.5" y="-14.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-protos</text>
|
|
64
35
|
</g>
|
|
65
36
|
<!-- 0->6 -->
|
|
66
|
-
<g id="
|
|
37
|
+
<g id="edge3" class="edge">
|
|
67
38
|
<title>0->6</title>
|
|
68
|
-
<path fill="none" stroke="black" d="
|
|
69
|
-
<polygon fill="black" stroke="black" points="236.
|
|
39
|
+
<path fill="none" stroke="black" d="M78.81,-431.91C67.71,-405.62 48.5,-353.45 48.5,-307 48.5,-307 48.5,-307 48.5,-161 48.5,-75.33 155.16,-41.29 235.63,-27.8"/>
|
|
40
|
+
<polygon fill="black" stroke="black" points="236.47,-31.21 245.8,-26.18 235.37,-24.3 236.47,-31.21"/>
|
|
70
41
|
</g>
|
|
71
42
|
<!-- 7 -->
|
|
72
43
|
<g id="node6" class="node">
|
|
73
44
|
<title>7</title>
|
|
74
|
-
<polygon fill="none" stroke="black" points="
|
|
75
|
-
<text text-anchor="middle" x="
|
|
45
|
+
<polygon fill="none" stroke="black" points="266,-180 129,-180 129,-144 266,-144 266,-180"/>
|
|
46
|
+
<text text-anchor="middle" x="197.5" y="-158.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-api</text>
|
|
76
47
|
</g>
|
|
77
48
|
<!-- 0->7 -->
|
|
78
|
-
<g id="
|
|
49
|
+
<g id="edge2" class="edge">
|
|
79
50
|
<title>0->7</title>
|
|
80
|
-
<path fill="none" stroke="
|
|
81
|
-
<polygon fill="
|
|
51
|
+
<path fill="none" stroke="black" d="M85.71,-431.86C84.92,-401.65 85.97,-337.48 105.5,-288 120.88,-249.04 151.5,-211.31 173.18,-187.68"/>
|
|
52
|
+
<polygon fill="black" stroke="black" points="175.88,-189.92 180.16,-180.23 170.77,-185.14 175.88,-189.92"/>
|
|
53
|
+
</g>
|
|
54
|
+
<!-- 2 -->
|
|
55
|
+
<g id="node3" class="node">
|
|
56
|
+
<title>2</title>
|
|
57
|
+
<polygon fill="none" stroke="black" points="172.5,-324 114.5,-324 114.5,-288 172.5,-288 172.5,-324"/>
|
|
58
|
+
<text text-anchor="middle" x="143.5" y="-302.3" font-family="Times,serif" font-size="14.00">rustfsm</text>
|
|
59
|
+
</g>
|
|
60
|
+
<!-- 1->2 -->
|
|
61
|
+
<g id="edge4" class="edge">
|
|
62
|
+
<title>1->2</title>
|
|
63
|
+
<path fill="none" stroke="black" d="M270.4,-359.88C243.41,-348.63 208.34,-334.02 181.91,-323"/>
|
|
64
|
+
<polygon fill="black" stroke="black" points="183.17,-319.74 172.59,-319.12 180.47,-326.2 183.17,-319.74"/>
|
|
65
|
+
</g>
|
|
66
|
+
<!-- 5 -->
|
|
67
|
+
<g id="node4" class="node">
|
|
68
|
+
<title>5</title>
|
|
69
|
+
<polygon fill="none" stroke="black" points="412.5,-108 312.5,-108 312.5,-72 412.5,-72 412.5,-108"/>
|
|
70
|
+
<text text-anchor="middle" x="362.5" y="-86.3" font-family="Times,serif" font-size="14.00">temporal-client</text>
|
|
71
|
+
</g>
|
|
72
|
+
<!-- 1->5 -->
|
|
73
|
+
<g id="edge5" class="edge">
|
|
74
|
+
<title>1->5</title>
|
|
75
|
+
<path fill="none" stroke="black" d="M369.63,-361.71C391.38,-353.54 414.82,-341.45 431.5,-324 455.23,-299.18 453.17,-285.75 459.5,-252 462.45,-236.27 464.68,-231.14 459.5,-216 445.69,-175.67 412.97,-138.29 389.35,-115.12"/>
|
|
76
|
+
<polygon fill="black" stroke="black" points="391.67,-112.5 382.03,-108.11 386.83,-117.55 391.67,-112.5"/>
|
|
77
|
+
</g>
|
|
78
|
+
<!-- 1->6 -->
|
|
79
|
+
<g id="edge8" class="edge">
|
|
80
|
+
<title>1->6</title>
|
|
81
|
+
<path fill="none" stroke="black" d="M369.7,-363.34C430.3,-345.24 516.5,-306.87 516.5,-235 516.5,-235 516.5,-235 516.5,-161 516.5,-98.28 449.55,-60.18 394.51,-39.46"/>
|
|
82
|
+
<polygon fill="black" stroke="black" points="395.69,-36.16 385.1,-36.04 393.3,-42.74 395.69,-36.16"/>
|
|
83
|
+
</g>
|
|
84
|
+
<!-- 1->7 -->
|
|
85
|
+
<g id="edge7" class="edge">
|
|
86
|
+
<title>1->7</title>
|
|
87
|
+
<path fill="none" stroke="black" d="M264.03,-359.96C247.39,-351.64 230.2,-339.91 219.5,-324 192.37,-283.65 191.8,-224.66 194.32,-190.41"/>
|
|
88
|
+
<polygon fill="black" stroke="black" points="197.83,-190.49 195.22,-180.22 190.86,-189.87 197.83,-190.49"/>
|
|
82
89
|
</g>
|
|
83
90
|
<!-- 8 -->
|
|
84
91
|
<g id="node7" class="node">
|
|
85
92
|
<title>8</title>
|
|
86
|
-
<polygon fill="none" stroke="black" points="
|
|
87
|
-
<text text-anchor="middle" x="
|
|
93
|
+
<polygon fill="none" stroke="black" points="450,-252 361,-252 361,-216 450,-216 450,-252"/>
|
|
94
|
+
<text text-anchor="middle" x="405.5" y="-230.3" font-family="Times,serif" font-size="14.00">temporal-sdk</text>
|
|
88
95
|
</g>
|
|
89
|
-
<!--
|
|
90
|
-
<g id="
|
|
91
|
-
<title>
|
|
92
|
-
<path fill="none" stroke="blue" d="
|
|
93
|
-
<polygon fill="blue" stroke="blue" points="
|
|
96
|
+
<!-- 1->8 -->
|
|
97
|
+
<g id="edge6" class="edge">
|
|
98
|
+
<title>1->8</title>
|
|
99
|
+
<path fill="none" stroke="blue" d="M354.05,-359.78C369.82,-351.61 386.07,-340.02 395.5,-324 406.38,-305.52 405.76,-280.93 404.34,-262.27"/>
|
|
100
|
+
<polygon fill="blue" stroke="blue" points="407.81,-261.75 403.49,-252.07 400.83,-262.32 407.81,-261.75"/>
|
|
94
101
|
</g>
|
|
95
|
-
<!--
|
|
96
|
-
<g id="
|
|
97
|
-
<title>
|
|
98
|
-
<
|
|
99
|
-
<
|
|
102
|
+
<!-- 9 -->
|
|
103
|
+
<g id="node8" class="node">
|
|
104
|
+
<title>9</title>
|
|
105
|
+
<polygon fill="none" stroke="black" points="395,-324 228,-324 228,-288 395,-288 395,-324"/>
|
|
106
|
+
<text text-anchor="middle" x="311.5" y="-302.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-test-utils</text>
|
|
100
107
|
</g>
|
|
101
|
-
<!--
|
|
108
|
+
<!-- 1->9 -->
|
|
102
109
|
<g id="edge9" class="edge">
|
|
103
|
-
<title>
|
|
104
|
-
<path fill="none" stroke="
|
|
105
|
-
<polygon fill="
|
|
110
|
+
<title>1->9</title>
|
|
111
|
+
<path fill="none" stroke="blue" d="M305.58,-359.7C304.79,-351.98 304.56,-342.71 304.9,-334.11"/>
|
|
112
|
+
<polygon fill="blue" stroke="blue" points="308.4,-334.32 305.6,-324.1 301.42,-333.84 308.4,-334.32"/>
|
|
106
113
|
</g>
|
|
107
|
-
<!--
|
|
114
|
+
<!-- 5->6 -->
|
|
108
115
|
<g id="edge10" class="edge">
|
|
109
|
-
<title>
|
|
110
|
-
<path fill="none" stroke="black" d="
|
|
111
|
-
<polygon fill="black" stroke="black" points="
|
|
112
|
-
</g>
|
|
113
|
-
<!-- 7->0 -->
|
|
114
|
-
<g id="edge11" class="edge">
|
|
115
|
-
<title>7->0</title>
|
|
116
|
-
<path fill="none" stroke="black" d="M363.18,-252.17C352.26,-271.5 328.39,-302.97 302,-324 286.4,-336.43 267.42,-347.19 249.5,-355.7"/>
|
|
117
|
-
<polygon fill="black" stroke="black" points="247.88,-352.6 240.25,-359.95 250.8,-358.96 247.88,-352.6"/>
|
|
116
|
+
<title>5->6</title>
|
|
117
|
+
<path fill="none" stroke="black" d="M352.86,-71.7C348.37,-63.64 342.94,-53.89 337.98,-44.98"/>
|
|
118
|
+
<polygon fill="black" stroke="black" points="340.95,-43.14 333.03,-36.1 334.84,-46.54 340.95,-43.14"/>
|
|
118
119
|
</g>
|
|
119
120
|
<!-- 7->5 -->
|
|
120
|
-
<g id="
|
|
121
|
+
<g id="edge11" class="edge">
|
|
121
122
|
<title>7->5</title>
|
|
122
|
-
<path fill="none" stroke="black" d="
|
|
123
|
-
<polygon fill="black" stroke="black" points="
|
|
123
|
+
<path fill="none" stroke="black" d="M237.86,-143.88C260.52,-134.26 288.97,-122.19 312.97,-112.01"/>
|
|
124
|
+
<polygon fill="black" stroke="black" points="314.43,-115.2 322.27,-108.07 311.69,-108.75 314.43,-115.2"/>
|
|
124
125
|
</g>
|
|
125
126
|
<!-- 7->6 -->
|
|
126
127
|
<g id="edge12" class="edge">
|
|
127
128
|
<title>7->6</title>
|
|
128
|
-
<path fill="none" stroke="black" d="
|
|
129
|
-
<polygon fill="black" stroke="black" points="
|
|
129
|
+
<path fill="none" stroke="black" d="M210.74,-143.85C225.01,-125.62 248.63,-96.14 270.5,-72 279.24,-62.36 289.24,-52.16 298.18,-43.31"/>
|
|
130
|
+
<polygon fill="black" stroke="black" points="300.7,-45.74 305.39,-36.24 295.8,-40.75 300.7,-45.74"/>
|
|
130
131
|
</g>
|
|
131
|
-
<!-- 8->
|
|
132
|
-
<g id="
|
|
133
|
-
<title>8->
|
|
134
|
-
<path fill="none" stroke="black" d="
|
|
135
|
-
<polygon fill="black" stroke="black" points="
|
|
132
|
+
<!-- 8->1 -->
|
|
133
|
+
<g id="edge14" class="edge">
|
|
134
|
+
<title>8->1</title>
|
|
135
|
+
<path fill="none" stroke="black" d="M416.59,-252.07C423.07,-271.04 426.51,-301.89 413.5,-324 405.57,-337.47 392.82,-347.8 378.95,-355.62"/>
|
|
136
|
+
<polygon fill="black" stroke="black" points="376.99,-352.69 369.71,-360.39 380.2,-358.91 376.99,-352.69"/>
|
|
136
137
|
</g>
|
|
137
138
|
<!-- 8->5 -->
|
|
138
|
-
<g id="
|
|
139
|
+
<g id="edge13" class="edge">
|
|
139
140
|
<title>8->5</title>
|
|
140
|
-
<path fill="none" stroke="black" d="
|
|
141
|
-
<polygon fill="black" stroke="black" points="
|
|
141
|
+
<path fill="none" stroke="black" d="M400.31,-215.87C392.95,-191.56 379.4,-146.82 370.68,-118.01"/>
|
|
142
|
+
<polygon fill="black" stroke="black" points="373.95,-116.75 367.71,-108.19 367.25,-118.77 373.95,-116.75"/>
|
|
142
143
|
</g>
|
|
143
144
|
<!-- 8->6 -->
|
|
144
145
|
<g id="edge16" class="edge">
|
|
145
146
|
<title>8->6</title>
|
|
146
|
-
<path fill="none" stroke="black" d="
|
|
147
|
-
<polygon fill="black" stroke="black" points="
|
|
147
|
+
<path fill="none" stroke="black" d="M413.59,-215.56C426.78,-184.32 448.83,-117.84 421.5,-72 413.54,-58.64 400.91,-48.45 387.34,-40.75"/>
|
|
148
|
+
<polygon fill="black" stroke="black" points="388.8,-37.56 378.32,-36.04 385.56,-43.77 388.8,-37.56"/>
|
|
148
149
|
</g>
|
|
149
150
|
<!-- 8->7 -->
|
|
150
|
-
<g id="
|
|
151
|
+
<g id="edge15" class="edge">
|
|
151
152
|
<title>8->7</title>
|
|
152
|
-
<path fill="none" stroke="black" d="
|
|
153
|
-
<polygon fill="black" stroke="black" points="
|
|
153
|
+
<path fill="none" stroke="black" d="M360.88,-217.98C330.78,-207.86 290.71,-194.37 257.79,-183.29"/>
|
|
154
|
+
<polygon fill="black" stroke="black" points="258.86,-179.96 248.26,-180.08 256.62,-186.59 258.86,-179.96"/>
|
|
155
|
+
</g>
|
|
156
|
+
<!-- 9->1 -->
|
|
157
|
+
<g id="edge19" class="edge">
|
|
158
|
+
<title>9->1</title>
|
|
159
|
+
<path fill="none" stroke="black" d="M317.4,-324.1C318.2,-331.79 318.44,-341.05 318.1,-349.67"/>
|
|
160
|
+
<polygon fill="black" stroke="black" points="314.61,-349.48 317.42,-359.7 321.59,-349.96 314.61,-349.48"/>
|
|
161
|
+
</g>
|
|
162
|
+
<!-- 9->5 -->
|
|
163
|
+
<g id="edge17" class="edge">
|
|
164
|
+
<title>9->5</title>
|
|
165
|
+
<path fill="none" stroke="black" d="M315.59,-287.85C324.43,-250.75 345.39,-162.81 356.04,-118.1"/>
|
|
166
|
+
<polygon fill="black" stroke="black" points="359.48,-118.77 358.39,-108.23 352.67,-117.15 359.48,-118.77"/>
|
|
167
|
+
</g>
|
|
168
|
+
<!-- 9->6 -->
|
|
169
|
+
<g id="edge21" class="edge">
|
|
170
|
+
<title>9->6</title>
|
|
171
|
+
<path fill="none" stroke="black" d="M308.43,-287.86C302.03,-249.05 288.97,-151.64 303.5,-72 305.11,-63.2 308.1,-53.95 311.29,-45.7"/>
|
|
172
|
+
<polygon fill="black" stroke="black" points="314.62,-46.79 315.19,-36.21 308.15,-44.12 314.62,-46.79"/>
|
|
173
|
+
</g>
|
|
174
|
+
<!-- 9->7 -->
|
|
175
|
+
<g id="edge20" class="edge">
|
|
176
|
+
<title>9->7</title>
|
|
177
|
+
<path fill="none" stroke="black" d="M297.75,-287.87C277.81,-263.03 240.73,-216.85 217.68,-188.14"/>
|
|
178
|
+
<polygon fill="black" stroke="black" points="220.29,-185.8 211.3,-180.19 214.83,-190.18 220.29,-185.8"/>
|
|
179
|
+
</g>
|
|
180
|
+
<!-- 9->8 -->
|
|
181
|
+
<g id="edge18" class="edge">
|
|
182
|
+
<title>9->8</title>
|
|
183
|
+
<path fill="none" stroke="black" d="M334.74,-287.7C346.69,-278.8 361.42,-267.82 374.35,-258.2"/>
|
|
184
|
+
<polygon fill="black" stroke="black" points="376.6,-260.88 382.53,-252.1 372.42,-255.27 376.6,-260.88"/>
|
|
154
185
|
</g>
|
|
155
186
|
</g>
|
|
156
187
|
</svg>
|
|
@@ -48,17 +48,21 @@ message ScheduleActivityTaskCommandAttributes {
|
|
|
48
48
|
temporal.api.taskqueue.v1.TaskQueue task_queue = 4;
|
|
49
49
|
temporal.api.common.v1.Header header = 5;
|
|
50
50
|
temporal.api.common.v1.Payloads input = 6;
|
|
51
|
-
// Indicates how long the caller is willing to wait for activity completion.
|
|
52
|
-
//
|
|
53
|
-
//
|
|
51
|
+
// Indicates how long the caller is willing to wait for activity completion. The "schedule" time
|
|
52
|
+
// is when the activity is initially scheduled, not when the most recent retry is scheduled.
|
|
53
|
+
// Limits how long retries will be attempted. Either this or `start_to_close_timeout` must be
|
|
54
|
+
// specified. When not specified, defaults to the workflow execution timeout.
|
|
54
55
|
//
|
|
55
56
|
// (-- api-linter: core::0140::prepositions=disabled
|
|
56
57
|
// aip.dev/not-precedent: "to" is used to indicate interval. --)
|
|
57
58
|
google.protobuf.Duration schedule_to_close_timeout = 7 [(gogoproto.stdduration) = true];
|
|
58
|
-
// Limits the time an activity task can stay in a task queue before a worker picks it up.
|
|
59
|
-
//
|
|
60
|
-
//
|
|
61
|
-
//
|
|
59
|
+
// Limits the time an activity task can stay in a task queue before a worker picks it up. The
|
|
60
|
+
// "schedule" time is when the most recent retry is scheduled. This timeout should usually not
|
|
61
|
+
// be set: it's useful in specific scenarios like worker-specific task queues. This timeout is
|
|
62
|
+
// always non retryable, as all a retry would achieve is to put it back into the same queue.
|
|
63
|
+
// Defaults to `schedule_to_close_timeout` or workflow execution timeout if that is not
|
|
64
|
+
// specified. More info:
|
|
65
|
+
// https://docs.temporal.io/docs/content/what-is-a-schedule-to-start-timeout/
|
|
62
66
|
//
|
|
63
67
|
// (-- api-linter: core::0140::prepositions=disabled
|
|
64
68
|
// aip.dev/not-precedent: "to" is used to indicate interval. --)
|
|
@@ -82,3 +82,13 @@ enum SignalExternalWorkflowExecutionFailedCause {
|
|
|
82
82
|
SIGNAL_EXTERNAL_WORKFLOW_EXECUTION_FAILED_CAUSE_UNSPECIFIED = 0;
|
|
83
83
|
SIGNAL_EXTERNAL_WORKFLOW_EXECUTION_FAILED_CAUSE_EXTERNAL_WORKFLOW_EXECUTION_NOT_FOUND = 1;
|
|
84
84
|
}
|
|
85
|
+
|
|
86
|
+
enum ResourceExhaustedCause {
|
|
87
|
+
RESOURCE_EXHAUSTED_CAUSE_UNSPECIFIED = 0;
|
|
88
|
+
// Caller exceeds request per second limit.
|
|
89
|
+
RESOURCE_EXHAUSTED_CAUSE_RPS_LIMIT = 1;
|
|
90
|
+
// Caller exceeds max concurrent request limit.
|
|
91
|
+
RESOURCE_EXHAUSTED_CAUSE_CONCURRENT_LIMIT = 2;
|
|
92
|
+
// System overloaded.
|
|
93
|
+
RESOURCE_EXHAUSTED_CAUSE_SYSTEM_OVERLOADED = 3;
|
|
94
|
+
}
|
|
@@ -36,7 +36,6 @@ enum NamespaceState {
|
|
|
36
36
|
NAMESPACE_STATE_REGISTERED = 1;
|
|
37
37
|
NAMESPACE_STATE_DEPRECATED = 2;
|
|
38
38
|
NAMESPACE_STATE_DELETED = 3;
|
|
39
|
-
NAMESPACE_STATE_HANDOVER = 4;
|
|
40
39
|
}
|
|
41
40
|
|
|
42
41
|
enum ArchivalState {
|
|
@@ -44,3 +43,9 @@ enum ArchivalState {
|
|
|
44
43
|
ARCHIVAL_STATE_DISABLED = 1;
|
|
45
44
|
ARCHIVAL_STATE_ENABLED = 2;
|
|
46
45
|
}
|
|
46
|
+
|
|
47
|
+
enum ReplicationState {
|
|
48
|
+
REPLICATION_STATE_UNSPECIFIED = 0;
|
|
49
|
+
REPLICATION_STATE_NORMAL = 1;
|
|
50
|
+
REPLICATION_STATE_HANDOVER = 2;
|
|
51
|
+
}
|
|
@@ -87,6 +87,12 @@ enum PendingActivityState {
|
|
|
87
87
|
PENDING_ACTIVITY_STATE_CANCEL_REQUESTED = 3;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
+
enum PendingWorkflowTaskState {
|
|
91
|
+
PENDING_WORKFLOW_TASK_STATE_UNSPECIFIED = 0;
|
|
92
|
+
PENDING_WORKFLOW_TASK_STATE_SCHEDULED = 1;
|
|
93
|
+
PENDING_WORKFLOW_TASK_STATE_STARTED = 2;
|
|
94
|
+
}
|
|
95
|
+
|
|
90
96
|
enum HistoryEventFilterType {
|
|
91
97
|
HISTORY_EVENT_FILTER_TYPE_UNSPECIFIED = 0;
|
|
92
98
|
HISTORY_EVENT_FILTER_TYPE_ALL_EVENT = 1;
|
|
@@ -33,6 +33,8 @@ option java_outer_classname = "MessageProto";
|
|
|
33
33
|
option ruby_package = "Temporal::Api::ErrorDetails::V1";
|
|
34
34
|
option csharp_namespace = "Temporal.Api.ErrorDetails.V1";
|
|
35
35
|
|
|
36
|
+
import "temporal/api/enums/v1/failed_cause.proto";
|
|
37
|
+
|
|
36
38
|
message NotFoundFailure {
|
|
37
39
|
string current_cluster = 1;
|
|
38
40
|
string active_cluster = 2;
|
|
@@ -72,3 +74,7 @@ message QueryFailedFailure {
|
|
|
72
74
|
message PermissionDeniedFailure {
|
|
73
75
|
string reason = 1;
|
|
74
76
|
}
|
|
77
|
+
|
|
78
|
+
message ResourceExhaustedFailure {
|
|
79
|
+
temporal.api.enums.v1.ResourceExhaustedCause cause = 1;
|
|
80
|
+
}
|
|
@@ -81,7 +81,8 @@ message WorkflowExecutionStartedEventAttributes {
|
|
|
81
81
|
google.protobuf.Timestamp workflow_execution_expiration_time = 19 [(gogoproto.stdtime) = true];
|
|
82
82
|
// If this workflow runs on a cron schedule, it will appear here
|
|
83
83
|
string cron_schedule = 20;
|
|
84
|
-
//
|
|
84
|
+
// For a cron workflow, this contains the amount of time between when this iteration of
|
|
85
|
+
// the cron workflow was scheduled and when it should run next per its cron_schedule.
|
|
85
86
|
google.protobuf.Duration first_workflow_task_backoff = 21 [(gogoproto.stdduration) = true];
|
|
86
87
|
temporal.api.common.v1.Memo memo = 22;
|
|
87
88
|
temporal.api.common.v1.SearchAttributes search_attributes = 23;
|