@temporalio/core-bridge 1.5.2 → 1.7.0
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 +304 -112
- package/lib/index.d.ts +8 -6
- package/lib/index.js.map +1 -1
- package/package.json +9 -4
- 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 +2 -2
- package/sdk-core/.buildkite/docker/docker-compose.yaml +1 -1
- package/sdk-core/.buildkite/pipeline.yml +2 -4
- package/sdk-core/.cargo/config.toml +5 -2
- package/sdk-core/.github/workflows/heavy.yml +29 -0
- package/sdk-core/Cargo.toml +1 -1
- package/sdk-core/README.md +20 -10
- package/sdk-core/client/src/lib.rs +215 -39
- package/sdk-core/client/src/metrics.rs +17 -8
- package/sdk-core/client/src/raw.rs +4 -4
- package/sdk-core/client/src/retry.rs +32 -20
- package/sdk-core/core/Cargo.toml +25 -12
- package/sdk-core/core/src/abstractions/take_cell.rs +28 -0
- package/sdk-core/core/src/abstractions.rs +204 -14
- package/sdk-core/core/src/core_tests/activity_tasks.rs +143 -50
- package/sdk-core/core/src/core_tests/child_workflows.rs +6 -5
- package/sdk-core/core/src/core_tests/determinism.rs +165 -2
- package/sdk-core/core/src/core_tests/local_activities.rs +431 -43
- package/sdk-core/core/src/core_tests/queries.rs +34 -16
- package/sdk-core/core/src/core_tests/workers.rs +8 -5
- package/sdk-core/core/src/core_tests/workflow_tasks.rs +588 -55
- package/sdk-core/core/src/ephemeral_server/mod.rs +113 -12
- package/sdk-core/core/src/internal_flags.rs +155 -0
- package/sdk-core/core/src/lib.rs +16 -9
- package/sdk-core/core/src/protosext/mod.rs +1 -1
- package/sdk-core/core/src/replay/mod.rs +16 -27
- package/sdk-core/core/src/telemetry/log_export.rs +1 -1
- package/sdk-core/core/src/telemetry/metrics.rs +69 -35
- package/sdk-core/core/src/telemetry/mod.rs +60 -21
- package/sdk-core/core/src/telemetry/prometheus_server.rs +19 -13
- package/sdk-core/core/src/test_help/mod.rs +73 -14
- package/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +119 -160
- package/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +89 -0
- package/sdk-core/core/src/worker/activities/local_activities.rs +379 -129
- package/sdk-core/core/src/worker/activities.rs +350 -175
- package/sdk-core/core/src/worker/client/mocks.rs +22 -2
- package/sdk-core/core/src/worker/client.rs +18 -2
- package/sdk-core/core/src/worker/mod.rs +183 -64
- package/sdk-core/core/src/worker/workflow/bridge.rs +1 -3
- package/sdk-core/core/src/worker/workflow/driven_workflow.rs +3 -5
- package/sdk-core/core/src/worker/workflow/history_update.rs +916 -277
- package/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +216 -183
- package/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +9 -12
- package/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +7 -9
- package/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +160 -87
- package/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +13 -14
- package/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +7 -9
- package/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +14 -17
- package/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +242 -110
- package/sdk-core/core/src/worker/workflow/machines/mod.rs +27 -19
- package/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +9 -11
- package/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +321 -206
- package/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +13 -18
- package/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +20 -29
- package/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +2 -2
- package/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +257 -51
- package/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +6 -17
- package/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +310 -150
- package/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +17 -20
- package/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +31 -15
- package/sdk-core/core/src/worker/workflow/managed_run.rs +1052 -380
- package/sdk-core/core/src/worker/workflow/mod.rs +598 -390
- package/sdk-core/core/src/worker/workflow/run_cache.rs +40 -57
- package/sdk-core/core/src/worker/workflow/wft_extraction.rs +137 -0
- package/sdk-core/core/src/worker/workflow/wft_poller.rs +1 -4
- package/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +117 -0
- package/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +24 -0
- package/sdk-core/core/src/worker/workflow/workflow_stream.rs +469 -718
- package/sdk-core/core-api/Cargo.toml +2 -1
- package/sdk-core/core-api/src/errors.rs +1 -34
- package/sdk-core/core-api/src/lib.rs +19 -9
- package/sdk-core/core-api/src/telemetry.rs +4 -6
- package/sdk-core/core-api/src/worker.rs +19 -1
- package/sdk-core/etc/deps.svg +115 -140
- package/sdk-core/etc/regen-depgraph.sh +5 -0
- package/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +86 -61
- package/sdk-core/fsm/rustfsm_trait/src/lib.rs +29 -71
- package/sdk-core/histories/ends_empty_wft_complete.bin +0 -0
- package/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
- package/sdk-core/histories/old_change_marker_format.bin +0 -0
- package/sdk-core/protos/api_upstream/.github/CODEOWNERS +2 -1
- package/sdk-core/protos/api_upstream/Makefile +6 -6
- package/sdk-core/protos/api_upstream/build/go.mod +7 -0
- package/sdk-core/protos/api_upstream/build/go.sum +5 -0
- package/sdk-core/protos/api_upstream/build/tools.go +29 -0
- package/sdk-core/protos/api_upstream/go.mod +6 -0
- package/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +9 -2
- package/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +7 -26
- package/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +13 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +3 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +3 -7
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +3 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +8 -8
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +25 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +24 -19
- package/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +49 -26
- package/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +4 -2
- package/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +5 -2
- package/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +57 -0
- package/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +63 -0
- package/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +71 -6
- package/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +2 -2
- package/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +64 -28
- package/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +4 -4
- package/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +7 -8
- package/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +10 -7
- package/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +19 -30
- package/sdk-core/protos/local/temporal/sdk/core/common/common.proto +1 -0
- package/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +1 -0
- package/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +8 -0
- package/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +67 -60
- package/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +85 -84
- package/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +9 -3
- package/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +2 -2
- package/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +2 -2
- package/sdk-core/sdk/Cargo.toml +5 -4
- package/sdk-core/sdk/src/lib.rs +108 -26
- package/sdk-core/sdk/src/workflow_context/options.rs +7 -1
- package/sdk-core/sdk/src/workflow_context.rs +24 -17
- package/sdk-core/sdk/src/workflow_future.rs +16 -15
- package/sdk-core/sdk-core-protos/Cargo.toml +5 -2
- package/sdk-core/sdk-core-protos/build.rs +36 -2
- package/sdk-core/sdk-core-protos/src/history_builder.rs +138 -106
- package/sdk-core/sdk-core-protos/src/history_info.rs +10 -1
- package/sdk-core/sdk-core-protos/src/lib.rs +272 -87
- package/sdk-core/sdk-core-protos/src/task_token.rs +12 -2
- package/sdk-core/test-utils/Cargo.toml +3 -1
- package/sdk-core/test-utils/src/canned_histories.rs +106 -296
- package/sdk-core/test-utils/src/histfetch.rs +1 -1
- package/sdk-core/test-utils/src/lib.rs +82 -23
- package/sdk-core/test-utils/src/wf_input_saver.rs +50 -0
- package/sdk-core/test-utils/src/workflows.rs +29 -0
- package/sdk-core/tests/fuzzy_workflow.rs +130 -0
- package/sdk-core/tests/{load_tests.rs → heavy_tests.rs} +125 -51
- package/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +25 -3
- package/sdk-core/tests/integ_tests/heartbeat_tests.rs +10 -5
- package/sdk-core/tests/integ_tests/metrics_tests.rs +218 -16
- package/sdk-core/tests/integ_tests/polling_tests.rs +4 -47
- package/sdk-core/tests/integ_tests/queries_tests.rs +5 -128
- package/sdk-core/tests/integ_tests/visibility_tests.rs +83 -25
- package/sdk-core/tests/integ_tests/workflow_tests/activities.rs +161 -72
- package/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +1 -0
- package/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +6 -13
- package/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +80 -3
- package/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +6 -2
- package/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +3 -10
- package/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +94 -200
- package/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +2 -4
- package/sdk-core/tests/integ_tests/workflow_tests/patches.rs +34 -28
- package/sdk-core/tests/integ_tests/workflow_tests/replay.rs +76 -7
- package/sdk-core/tests/integ_tests/workflow_tests/resets.rs +1 -0
- package/sdk-core/tests/integ_tests/workflow_tests/signals.rs +18 -14
- package/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +6 -20
- package/sdk-core/tests/integ_tests/workflow_tests/timers.rs +10 -21
- package/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +7 -8
- package/sdk-core/tests/integ_tests/workflow_tests.rs +13 -14
- package/sdk-core/tests/main.rs +3 -13
- package/sdk-core/tests/runner.rs +75 -36
- package/sdk-core/tests/wf_input_replay.rs +32 -0
- package/src/conversions.rs +14 -8
- package/src/runtime.rs +9 -8
- package/ts/index.ts +8 -6
- package/sdk-core/bridge-ffi/Cargo.toml +0 -24
- package/sdk-core/bridge-ffi/LICENSE.txt +0 -23
- package/sdk-core/bridge-ffi/build.rs +0 -25
- package/sdk-core/bridge-ffi/include/sdk-core-bridge.h +0 -224
- package/sdk-core/bridge-ffi/src/lib.rs +0 -746
- package/sdk-core/bridge-ffi/src/wrappers.rs +0 -221
- package/sdk-core/protos/local/temporal/sdk/core/bridge/bridge.proto +0 -210
- package/sdk-core/sdk/src/conversions.rs +0 -8
|
@@ -15,10 +15,11 @@ categories = ["development-tools"]
|
|
|
15
15
|
[dependencies]
|
|
16
16
|
async-trait = "0.1"
|
|
17
17
|
derive_builder = "0.12"
|
|
18
|
-
opentelemetry = "0.18"
|
|
19
18
|
prost-types = "0.11"
|
|
19
|
+
serde = { version = "1.0", default_features = false, features = ["derive"] }
|
|
20
20
|
serde_json = "1.0"
|
|
21
21
|
thiserror = "1.0"
|
|
22
|
+
tokio = "1.24"
|
|
22
23
|
tonic = "0.8"
|
|
23
24
|
tracing-core = "0.1"
|
|
24
25
|
url = "2.3"
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
//! Error types exposed by public APIs
|
|
2
2
|
|
|
3
|
-
use
|
|
4
|
-
use temporal_sdk_core_protos::coresdk::{
|
|
5
|
-
activity_result::ActivityExecutionResult,
|
|
6
|
-
workflow_activation::remove_from_cache::EvictionReason,
|
|
7
|
-
};
|
|
3
|
+
use temporal_sdk_core_protos::coresdk::activity_result::ActivityExecutionResult;
|
|
8
4
|
|
|
9
5
|
/// Errors thrown by [crate::Worker::poll_workflow_activation]
|
|
10
6
|
#[derive(thiserror::Error, Debug)]
|
|
@@ -64,32 +60,3 @@ pub enum CompleteActivityError {
|
|
|
64
60
|
completion: Option<ActivityExecutionResult>,
|
|
65
61
|
},
|
|
66
62
|
}
|
|
67
|
-
|
|
68
|
-
/// Errors thrown inside of workflow machines
|
|
69
|
-
#[derive(thiserror::Error, Debug)]
|
|
70
|
-
pub enum WFMachinesError {
|
|
71
|
-
#[error("Nondeterminism error: {0}")]
|
|
72
|
-
Nondeterminism(String),
|
|
73
|
-
#[error("Fatal error in workflow machines: {0}")]
|
|
74
|
-
Fatal(String),
|
|
75
|
-
|
|
76
|
-
#[error("Unrecoverable network error while fetching history: {0}")]
|
|
77
|
-
HistoryFetchingError(tonic::Status),
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
impl WFMachinesError {
|
|
81
|
-
pub fn evict_reason(&self) -> EvictionReason {
|
|
82
|
-
match self {
|
|
83
|
-
WFMachinesError::Nondeterminism(_) => EvictionReason::Nondeterminism,
|
|
84
|
-
WFMachinesError::Fatal(_) | WFMachinesError::HistoryFetchingError(_) => {
|
|
85
|
-
EvictionReason::Fatal
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
impl From<TimestampError> for WFMachinesError {
|
|
92
|
-
fn from(_: TimestampError) -> Self {
|
|
93
|
-
Self::Fatal("Could not decode timestamp".to_string())
|
|
94
|
-
}
|
|
95
|
-
}
|
|
@@ -45,13 +45,17 @@ pub trait Worker: Send + Sync {
|
|
|
45
45
|
/// concurrently internally.
|
|
46
46
|
async fn poll_activity_task(&self) -> Result<ActivityTask, PollActivityError>;
|
|
47
47
|
|
|
48
|
-
/// Tell the worker that a workflow activation has completed. May be freely called
|
|
48
|
+
/// Tell the worker that a workflow activation has completed. May (and should) be freely called
|
|
49
|
+
/// concurrently. The future may take some time to resolve, as fetching more events might be
|
|
50
|
+
/// necessary for completion to... complete - thus SDK implementers should make sure they do
|
|
51
|
+
/// not serialize completions.
|
|
49
52
|
async fn complete_workflow_activation(
|
|
50
53
|
&self,
|
|
51
54
|
completion: WorkflowActivationCompletion,
|
|
52
55
|
) -> Result<(), CompleteWfError>;
|
|
53
56
|
|
|
54
|
-
/// Tell the worker that an activity has finished executing. May be freely called
|
|
57
|
+
/// Tell the worker that an activity has finished executing. May (and should) be freely called
|
|
58
|
+
/// concurrently.
|
|
55
59
|
async fn complete_activity_task(
|
|
56
60
|
&self,
|
|
57
61
|
completion: ActivityTaskCompletion,
|
|
@@ -93,17 +97,23 @@ pub trait Worker: Send + Sync {
|
|
|
93
97
|
fn initiate_shutdown(&self);
|
|
94
98
|
|
|
95
99
|
/// Initiates async shutdown procedure, eventually ceases all polling of the server and shuts
|
|
96
|
-
/// down this worker. [Worker::poll_workflow_activation]
|
|
97
|
-
///
|
|
98
|
-
///
|
|
99
|
-
/// [Worker::complete_workflow_activation] for those
|
|
100
|
-
///
|
|
101
|
-
///
|
|
100
|
+
/// down this worker. [Worker::poll_workflow_activation] and [Worker::poll_activity_task] should
|
|
101
|
+
/// be called until both return a `ShutDown` error to ensure that all outstanding work is
|
|
102
|
+
/// complete. This means that the lang sdk will need to call
|
|
103
|
+
/// [Worker::complete_workflow_activation] and [Worker::complete_activity_task] for those
|
|
104
|
+
/// workflows & activities until they are done. At that point, the lang SDK can end the process,
|
|
105
|
+
/// or drop the [Worker] instance via [Worker::finalize_shutdown], which will close the
|
|
106
|
+
/// connection and free resources. If you have set [WorkerConfig::no_remote_activities], you may
|
|
107
|
+
/// skip calling [Worker::poll_activity_task].
|
|
108
|
+
///
|
|
109
|
+
/// Lang implementations should use [Worker::initiate_shutdown] followed by
|
|
110
|
+
/// [Worker::finalize_shutdown].
|
|
102
111
|
async fn shutdown(&self);
|
|
103
112
|
|
|
104
113
|
/// Completes shutdown and frees all resources. You should avoid simply dropping workers, as
|
|
105
114
|
/// this does not allow async tasks to report any panics that may have occurred cleanly.
|
|
106
115
|
///
|
|
107
|
-
/// This should be called only after [Worker::shutdown] has resolved
|
|
116
|
+
/// This should be called only after [Worker::shutdown] has resolved and/or both polling
|
|
117
|
+
/// functions have returned `ShutDown` errors.
|
|
108
118
|
async fn finalize_shutdown(self);
|
|
109
119
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
use opentelemetry::metrics::Meter;
|
|
2
1
|
use std::{
|
|
3
2
|
collections::HashMap,
|
|
4
3
|
net::SocketAddr,
|
|
@@ -18,11 +17,6 @@ pub trait CoreTelemetry {
|
|
|
18
17
|
/// Returns the list of logs from oldest to newest. Returns an empty vec if the feature is not
|
|
19
18
|
/// configured.
|
|
20
19
|
fn fetch_buffered_logs(&self) -> Vec<CoreLog>;
|
|
21
|
-
|
|
22
|
-
/// If metrics gathering is enabled, returns the OTel meter for core telemetry, which can be
|
|
23
|
-
/// used to create metrics instruments, or passed to things that create/record metrics (ex:
|
|
24
|
-
/// clients).
|
|
25
|
-
fn get_metric_meter(&self) -> Option<&Meter>;
|
|
26
20
|
}
|
|
27
21
|
|
|
28
22
|
/// Telemetry configuration options. Construct with [TelemetryOptionsBuilder]
|
|
@@ -47,6 +41,10 @@ pub struct TelemetryOptions {
|
|
|
47
41
|
/// Specifies the aggregation temporality for metric export. Defaults to cumulative.
|
|
48
42
|
#[builder(default = "MetricTemporality::Cumulative")]
|
|
49
43
|
pub metric_temporality: MetricTemporality,
|
|
44
|
+
|
|
45
|
+
// A map of tags to be applied to all metrics
|
|
46
|
+
#[builder(default)]
|
|
47
|
+
pub global_tags: HashMap<String, String>,
|
|
50
48
|
}
|
|
51
49
|
|
|
52
50
|
/// Options for exporting to an OpenTelemetry Collector
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
use std::time::Duration;
|
|
2
|
+
use tokio::sync::mpsc::UnboundedSender;
|
|
2
3
|
|
|
3
4
|
/// Defines per-worker configuration options
|
|
4
|
-
#[derive(Debug, Clone, derive_builder::Builder)]
|
|
5
|
+
#[derive(Debug, Clone, derive_builder::Builder, serde::Serialize, serde::Deserialize)]
|
|
5
6
|
#[builder(setter(into), build_fn(validate = "Self::validate"))]
|
|
6
7
|
#[non_exhaustive]
|
|
7
8
|
pub struct WorkerConfig {
|
|
@@ -105,6 +106,23 @@ pub struct WorkerConfig {
|
|
|
105
106
|
/// up during shutdown, setting this true saves some back-and-forth.
|
|
106
107
|
#[builder(default = "false")]
|
|
107
108
|
pub ignore_evicts_on_shutdown: bool,
|
|
109
|
+
|
|
110
|
+
/// Maximum number of next page (or initial) history event listing requests we'll make
|
|
111
|
+
/// concurrently. I don't this it's worth exposing this to users until we encounter a reason.
|
|
112
|
+
#[builder(default = "5")]
|
|
113
|
+
pub fetching_concurrency: usize,
|
|
114
|
+
|
|
115
|
+
/// If set, and the `save_wf_inputs` feature is enabled in core, will be sent a serialized
|
|
116
|
+
/// instance of every input to workflow state in order. This is for testing purposes, SDK
|
|
117
|
+
/// implementations never need to care about it.
|
|
118
|
+
#[builder(default)]
|
|
119
|
+
#[serde(skip)]
|
|
120
|
+
pub wf_state_inputs: Option<UnboundedSender<Vec<u8>>>,
|
|
121
|
+
|
|
122
|
+
/// If set, core will issue cancels for all outstanding activities after shutdown has been
|
|
123
|
+
/// initiated and this amount of time has elapsed.
|
|
124
|
+
#[builder(default)]
|
|
125
|
+
pub graceful_shutdown_period: Option<Duration>,
|
|
108
126
|
}
|
|
109
127
|
|
|
110
128
|
impl WorkerConfig {
|
package/sdk-core/etc/deps.svg
CHANGED
|
@@ -1,187 +1,162 @@
|
|
|
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
|
|
4
|
+
<!-- Generated by graphviz version 7.0.4 (0)
|
|
5
5
|
-->
|
|
6
|
-
<!--
|
|
7
|
-
<svg width="
|
|
8
|
-
viewBox="0.00 0.00
|
|
9
|
-
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4
|
|
10
|
-
<
|
|
11
|
-
<polygon fill="white" stroke="transparent" points="-4,4 -4,-472 520.5,-472 520.5,4 -4,4"/>
|
|
6
|
+
<!-- Pages: 1 -->
|
|
7
|
+
<svg width="436pt" height="404pt"
|
|
8
|
+
viewBox="0.00 0.00 436.26 404.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 400)">
|
|
10
|
+
<polygon fill="white" stroke="none" points="-4,4 -4,-400 432.26,-400 432.26,4 -4,4"/>
|
|
12
11
|
<!-- 0 -->
|
|
13
12
|
<g id="node1" class="node">
|
|
14
13
|
<title>0</title>
|
|
15
|
-
<polygon fill="none" stroke="black" points="
|
|
16
|
-
<text text-anchor="middle" x="
|
|
14
|
+
<polygon fill="none" stroke="black" points="255,-396 139,-396 139,-360 255,-360 255,-396"/>
|
|
15
|
+
<text text-anchor="middle" x="197" y="-374.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core</text>
|
|
17
16
|
</g>
|
|
18
17
|
<!-- 1 -->
|
|
19
18
|
<g id="node2" class="node">
|
|
20
19
|
<title>1</title>
|
|
21
|
-
<polygon fill="none" stroke="black" points="
|
|
22
|
-
<text text-anchor="middle" x="
|
|
20
|
+
<polygon fill="none" stroke="black" points="58,-324 0,-324 0,-288 58,-288 58,-324"/>
|
|
21
|
+
<text text-anchor="middle" x="29" y="-302.3" font-family="Times,serif" font-size="14.00">rustfsm</text>
|
|
23
22
|
</g>
|
|
24
23
|
<!-- 0->1 -->
|
|
25
24
|
<g id="edge1" class="edge">
|
|
26
25
|
<title>0->1</title>
|
|
27
|
-
<path fill="none" stroke="black" d="
|
|
28
|
-
<polygon fill="black" stroke="black" points="
|
|
26
|
+
<path fill="none" stroke="black" d="M155.04,-359.52C128.68,-348.53 94.87,-334.45 68.91,-323.63"/>
|
|
27
|
+
<polygon fill="black" stroke="black" points="70.28,-320.41 59.7,-319.79 67.59,-326.87 70.28,-320.41"/>
|
|
29
28
|
</g>
|
|
30
|
-
<!--
|
|
31
|
-
<g id="
|
|
32
|
-
<title>
|
|
33
|
-
<polygon fill="none" stroke="black" points="
|
|
34
|
-
<text text-anchor="middle" x="
|
|
35
|
-
</g>
|
|
36
|
-
<!-- 0->6 -->
|
|
37
|
-
<g id="edge3" class="edge">
|
|
38
|
-
<title>0->6</title>
|
|
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"/>
|
|
41
|
-
</g>
|
|
42
|
-
<!-- 7 -->
|
|
43
|
-
<g id="node6" class="node">
|
|
44
|
-
<title>7</title>
|
|
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>
|
|
29
|
+
<!-- 3 -->
|
|
30
|
+
<g id="node3" class="node">
|
|
31
|
+
<title>3</title>
|
|
32
|
+
<polygon fill="none" stroke="black" points="368,-108 268,-108 268,-72 368,-72 368,-108"/>
|
|
33
|
+
<text text-anchor="middle" x="318" y="-86.3" font-family="Times,serif" font-size="14.00">temporal-client</text>
|
|
47
34
|
</g>
|
|
48
|
-
<!-- 0->
|
|
35
|
+
<!-- 0->3 -->
|
|
49
36
|
<g id="edge2" class="edge">
|
|
50
|
-
<title>0->
|
|
51
|
-
<path fill="none" stroke="black" d="
|
|
52
|
-
<polygon fill="black" stroke="black" points="
|
|
37
|
+
<title>0->3</title>
|
|
38
|
+
<path fill="none" stroke="black" d="M255.43,-370.58C312.02,-363.02 391.98,-348.3 411,-324 461.94,-258.91 386.25,-162.28 343.68,-116.65"/>
|
|
39
|
+
<polygon fill="black" stroke="black" points="346.38,-114.4 336.95,-109.58 341.31,-119.23 346.38,-114.4"/>
|
|
53
40
|
</g>
|
|
54
|
-
<!--
|
|
55
|
-
<g id="
|
|
56
|
-
<title>
|
|
57
|
-
<polygon fill="none" stroke="black" points="
|
|
58
|
-
<text text-anchor="middle" x="
|
|
41
|
+
<!-- 4 -->
|
|
42
|
+
<g id="node4" class="node">
|
|
43
|
+
<title>4</title>
|
|
44
|
+
<polygon fill="none" stroke="black" points="298.5,-36 143.5,-36 143.5,0 298.5,0 298.5,-36"/>
|
|
45
|
+
<text text-anchor="middle" x="221" y="-14.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-protos</text>
|
|
59
46
|
</g>
|
|
60
|
-
<!--
|
|
61
|
-
<g id="
|
|
62
|
-
<title>
|
|
63
|
-
<path fill="none" stroke="black" d="
|
|
64
|
-
<polygon fill="black" stroke="black" points="
|
|
47
|
+
<!-- 0->4 -->
|
|
48
|
+
<g id="edge5" class="edge">
|
|
49
|
+
<title>0->4</title>
|
|
50
|
+
<path fill="none" stroke="black" d="M170.41,-359.59C137.57,-335.74 86,-289.6 86,-235 86,-235 86,-235 86,-161 86,-107.38 137.19,-65.95 176.53,-42.03"/>
|
|
51
|
+
<polygon fill="black" stroke="black" points="178.08,-45.18 184.93,-37.1 174.53,-39.14 178.08,-45.18"/>
|
|
65
52
|
</g>
|
|
66
53
|
<!-- 5 -->
|
|
67
|
-
<g id="
|
|
54
|
+
<g id="node5" class="node">
|
|
68
55
|
<title>5</title>
|
|
69
|
-
<polygon fill="none" stroke="black" points="
|
|
70
|
-
<text text-anchor="middle" x="
|
|
56
|
+
<polygon fill="none" stroke="black" points="289.5,-180 152.5,-180 152.5,-144 289.5,-144 289.5,-180"/>
|
|
57
|
+
<text text-anchor="middle" x="221" y="-158.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-api</text>
|
|
71
58
|
</g>
|
|
72
|
-
<!--
|
|
73
|
-
<g id="
|
|
74
|
-
<title>
|
|
75
|
-
<path fill="none" stroke="black" d="
|
|
76
|
-
<polygon fill="black" stroke="black" points="
|
|
59
|
+
<!-- 0->5 -->
|
|
60
|
+
<g id="edge4" class="edge">
|
|
61
|
+
<title>0->5</title>
|
|
62
|
+
<path fill="none" stroke="black" d="M188.08,-359.89C173.64,-329.74 148.72,-265.64 169,-216 173.27,-205.55 180.7,-196.05 188.64,-188.07"/>
|
|
63
|
+
<polygon fill="black" stroke="black" points="190.92,-190.72 195.87,-181.35 186.16,-185.59 190.92,-190.72"/>
|
|
77
64
|
</g>
|
|
78
|
-
<!--
|
|
79
|
-
<g id="
|
|
80
|
-
<title>
|
|
81
|
-
<
|
|
82
|
-
<
|
|
65
|
+
<!-- 6 -->
|
|
66
|
+
<g id="node6" class="node">
|
|
67
|
+
<title>6</title>
|
|
68
|
+
<polygon fill="none" stroke="black" points="266.5,-252 177.5,-252 177.5,-216 266.5,-216 266.5,-252"/>
|
|
69
|
+
<text text-anchor="middle" x="222" y="-230.3" font-family="Times,serif" font-size="14.00">temporal-sdk</text>
|
|
83
70
|
</g>
|
|
84
|
-
<!--
|
|
85
|
-
<g id="
|
|
86
|
-
<title>
|
|
87
|
-
<path fill="none" stroke="
|
|
88
|
-
<polygon fill="
|
|
71
|
+
<!-- 0->6 -->
|
|
72
|
+
<g id="edge3" class="edge">
|
|
73
|
+
<title>0->6</title>
|
|
74
|
+
<path fill="none" stroke="blue" d="M195.45,-359.59C197.18,-335.5 204.59,-291.75 211.56,-263.03"/>
|
|
75
|
+
<polygon fill="blue" stroke="blue" points="214.89,-264.13 214.02,-253.58 208.12,-262.37 214.89,-264.13"/>
|
|
89
76
|
</g>
|
|
90
|
-
<!--
|
|
77
|
+
<!-- 7 -->
|
|
91
78
|
<g id="node7" class="node">
|
|
92
|
-
<title>
|
|
93
|
-
<polygon fill="none" stroke="black" points="
|
|
94
|
-
<text text-anchor="middle" x="
|
|
79
|
+
<title>7</title>
|
|
80
|
+
<polygon fill="none" stroke="black" points="401.5,-324 234.5,-324 234.5,-288 401.5,-288 401.5,-324"/>
|
|
81
|
+
<text text-anchor="middle" x="318" y="-302.3" font-family="Times,serif" font-size="14.00">temporal-sdk-core-test-utils</text>
|
|
95
82
|
</g>
|
|
96
|
-
<!--
|
|
83
|
+
<!-- 0->7 -->
|
|
97
84
|
<g id="edge6" class="edge">
|
|
98
|
-
<title>
|
|
99
|
-
<path fill="none" stroke="blue" d="
|
|
100
|
-
<polygon fill="blue" stroke="blue" points="
|
|
85
|
+
<title>0->7</title>
|
|
86
|
+
<path fill="none" stroke="blue" d="M221.29,-359.52C235.94,-350.51 254.96,-339.42 272.29,-329.76"/>
|
|
87
|
+
<polygon fill="blue" stroke="blue" points="273.86,-332.89 280.93,-324.99 270.48,-326.76 273.86,-332.89"/>
|
|
101
88
|
</g>
|
|
102
|
-
<!--
|
|
103
|
-
<g id="
|
|
104
|
-
<title>
|
|
105
|
-
<
|
|
106
|
-
<
|
|
89
|
+
<!-- 3->4 -->
|
|
90
|
+
<g id="edge7" class="edge">
|
|
91
|
+
<title>3->4</title>
|
|
92
|
+
<path fill="none" stroke="black" d="M294.02,-71.7C282.01,-63.03 267.28,-52.4 254.21,-42.96"/>
|
|
93
|
+
<polygon fill="black" stroke="black" points="256.42,-40.25 246.27,-37.23 252.33,-45.92 256.42,-40.25"/>
|
|
107
94
|
</g>
|
|
108
|
-
<!--
|
|
109
|
-
<g id="
|
|
110
|
-
<title>
|
|
111
|
-
<path fill="none" stroke="
|
|
112
|
-
<polygon fill="
|
|
95
|
+
<!-- 5->3 -->
|
|
96
|
+
<g id="edge8" class="edge">
|
|
97
|
+
<title>5->3</title>
|
|
98
|
+
<path fill="none" stroke="black" d="M244.98,-143.7C256.99,-135.03 271.72,-124.4 284.79,-114.96"/>
|
|
99
|
+
<polygon fill="black" stroke="black" points="286.67,-117.92 292.73,-109.23 282.58,-112.25 286.67,-117.92"/>
|
|
113
100
|
</g>
|
|
114
|
-
<!-- 5->
|
|
115
|
-
<g id="
|
|
116
|
-
<title>5->
|
|
117
|
-
<path fill="none" stroke="black" d="
|
|
118
|
-
<polygon fill="black" stroke="black" points="
|
|
101
|
+
<!-- 5->4 -->
|
|
102
|
+
<g id="edge9" class="edge">
|
|
103
|
+
<title>5->4</title>
|
|
104
|
+
<path fill="none" stroke="black" d="M221,-143.59C221,-119.61 221,-76.14 221,-47.42"/>
|
|
105
|
+
<polygon fill="black" stroke="black" points="224.5,-47.62 221,-37.62 217.5,-47.62 224.5,-47.62"/>
|
|
119
106
|
</g>
|
|
120
|
-
<!--
|
|
107
|
+
<!-- 6->0 -->
|
|
121
108
|
<g id="edge11" class="edge">
|
|
122
|
-
<title>
|
|
123
|
-
<path fill="none" stroke="black" d="
|
|
124
|
-
<polygon fill="black" stroke="black" points="
|
|
125
|
-
</g>
|
|
126
|
-
<!-- 7->6 -->
|
|
127
|
-
<g id="edge12" class="edge">
|
|
128
|
-
<title>7->6</title>
|
|
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"/>
|
|
109
|
+
<title>6->0</title>
|
|
110
|
+
<path fill="none" stroke="black" d="M223.57,-252.11C221.89,-276.03 214.51,-319.76 207.53,-348.6"/>
|
|
111
|
+
<polygon fill="black" stroke="black" points="204.18,-347.56 205.06,-358.12 210.96,-349.32 204.18,-347.56"/>
|
|
131
112
|
</g>
|
|
132
|
-
<!--
|
|
133
|
-
<g id="
|
|
134
|
-
<title>
|
|
135
|
-
<path fill="none" stroke="black" d="
|
|
136
|
-
<polygon fill="black" stroke="black" points="
|
|
113
|
+
<!-- 6->3 -->
|
|
114
|
+
<g id="edge10" class="edge">
|
|
115
|
+
<title>6->3</title>
|
|
116
|
+
<path fill="none" stroke="black" d="M258.49,-215.67C273.19,-206.93 288.99,-194.98 299,-180 310.95,-162.11 315.57,-138.07 317.27,-119.49"/>
|
|
117
|
+
<polygon fill="black" stroke="black" points="320.75,-119.9 317.91,-109.69 313.76,-119.44 320.75,-119.9"/>
|
|
137
118
|
</g>
|
|
138
|
-
<!--
|
|
119
|
+
<!-- 6->4 -->
|
|
139
120
|
<g id="edge13" class="edge">
|
|
140
|
-
<title>
|
|
141
|
-
<path fill="none" stroke="black" d="
|
|
142
|
-
<polygon fill="black" stroke="black" points="
|
|
121
|
+
<title>6->4</title>
|
|
122
|
+
<path fill="none" stroke="black" d="M181.41,-215.53C166.89,-207.06 152.12,-195.34 144,-180 136.51,-165.86 139.64,-159.39 144,-144 154.67,-106.33 180.26,-68.86 199.02,-44.92"/>
|
|
123
|
+
<polygon fill="black" stroke="black" points="201.6,-47.29 205.13,-37.31 196.14,-42.91 201.6,-47.29"/>
|
|
124
|
+
</g>
|
|
125
|
+
<!-- 6->5 -->
|
|
126
|
+
<g id="edge12" class="edge">
|
|
127
|
+
<title>6->5</title>
|
|
128
|
+
<path fill="none" stroke="black" d="M221.75,-215.7C221.65,-208.41 221.52,-199.73 221.41,-191.54"/>
|
|
129
|
+
<polygon fill="black" stroke="black" points="224.91,-191.57 221.27,-181.62 217.91,-191.67 224.91,-191.57"/>
|
|
143
130
|
</g>
|
|
144
|
-
<!--
|
|
131
|
+
<!-- 7->0 -->
|
|
145
132
|
<g id="edge16" class="edge">
|
|
146
|
-
<title>
|
|
147
|
-
<path fill="none" stroke="black" d="
|
|
148
|
-
<polygon fill="black" stroke="black" points="
|
|
133
|
+
<title>7->0</title>
|
|
134
|
+
<path fill="none" stroke="black" d="M294.08,-324.26C279.5,-333.23 260.5,-344.31 243.14,-354"/>
|
|
135
|
+
<polygon fill="black" stroke="black" points="241.54,-350.89 234.48,-358.78 244.93,-357.01 241.54,-350.89"/>
|
|
149
136
|
</g>
|
|
150
|
-
<!--
|
|
151
|
-
<g id="
|
|
152
|
-
<title>
|
|
153
|
-
<path fill="none" stroke="black" d="
|
|
154
|
-
<polygon fill="black" stroke="black" points="
|
|
137
|
+
<!-- 7->3 -->
|
|
138
|
+
<g id="edge14" class="edge">
|
|
139
|
+
<title>7->3</title>
|
|
140
|
+
<path fill="none" stroke="black" d="M318.57,-287.61C319.46,-258.08 320.99,-196.26 320,-144 319.85,-136.05 319.57,-127.44 319.27,-119.51"/>
|
|
141
|
+
<polygon fill="black" stroke="black" points="322.78,-119.54 318.87,-109.69 315.78,-119.83 322.78,-119.54"/>
|
|
155
142
|
</g>
|
|
156
|
-
<!--
|
|
157
|
-
<g id="
|
|
158
|
-
<title>
|
|
159
|
-
<path fill="none" stroke="black" d="
|
|
160
|
-
<polygon fill="black" stroke="black" points="
|
|
143
|
+
<!-- 7->4 -->
|
|
144
|
+
<g id="edge18" class="edge">
|
|
145
|
+
<title>7->4</title>
|
|
146
|
+
<path fill="none" stroke="black" d="M331.1,-287.73C360.65,-246.5 426.21,-140.69 377,-72 361.19,-49.92 335.65,-36.93 309.77,-29.32"/>
|
|
147
|
+
<polygon fill="black" stroke="black" points="310.71,-25.95 300.15,-26.77 308.92,-32.72 310.71,-25.95"/>
|
|
161
148
|
</g>
|
|
162
|
-
<!--
|
|
149
|
+
<!-- 7->5 -->
|
|
163
150
|
<g id="edge17" class="edge">
|
|
164
|
-
<title>
|
|
165
|
-
<path fill="none" stroke="black" d="
|
|
166
|
-
<polygon fill="black" stroke="black" points="
|
|
167
|
-
</g>
|
|
168
|
-
<!--
|
|
169
|
-
<g id="
|
|
170
|
-
<title>
|
|
171
|
-
<path fill="none" stroke="black" d="
|
|
172
|
-
<polygon fill="black" stroke="black" points="
|
|
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"/>
|
|
151
|
+
<title>7->5</title>
|
|
152
|
+
<path fill="none" stroke="black" d="M311.96,-287.6C304.98,-268.89 292.34,-238.77 276,-216 268.79,-205.96 259.54,-196.2 250.69,-187.86"/>
|
|
153
|
+
<polygon fill="black" stroke="black" points="253.28,-185.48 243.53,-181.34 248.57,-190.66 253.28,-185.48"/>
|
|
154
|
+
</g>
|
|
155
|
+
<!-- 7->6 -->
|
|
156
|
+
<g id="edge15" class="edge">
|
|
157
|
+
<title>7->6</title>
|
|
158
|
+
<path fill="none" stroke="black" d="M294.27,-287.7C282.38,-279.03 267.81,-268.4 254.86,-258.96"/>
|
|
159
|
+
<polygon fill="black" stroke="black" points="257.16,-256.3 247.01,-253.24 253.03,-261.96 257.16,-256.3"/>
|
|
185
160
|
</g>
|
|
186
161
|
</g>
|
|
187
162
|
</svg>
|