temporalio 0.1.1 → 0.2.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.
Files changed (585) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +4035 -0
  3. data/Cargo.toml +25 -0
  4. data/Gemfile +20 -0
  5. data/LICENSE +16 -15
  6. data/README.md +455 -195
  7. data/Rakefile +387 -0
  8. data/ext/Cargo.toml +25 -0
  9. data/lib/temporalio/activity/complete_async_error.rb +11 -0
  10. data/lib/temporalio/activity/context.rb +82 -77
  11. data/lib/temporalio/activity/definition.rb +77 -0
  12. data/lib/temporalio/activity/info.rb +42 -46
  13. data/lib/temporalio/activity.rb +49 -65
  14. data/lib/temporalio/api/batch/v1/message.rb +31 -0
  15. data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +93 -0
  16. data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +25 -0
  17. data/lib/temporalio/api/cloud/cloudservice.rb +3 -0
  18. data/lib/temporalio/api/cloud/identity/v1/message.rb +36 -0
  19. data/lib/temporalio/api/cloud/namespace/v1/message.rb +35 -0
  20. data/lib/temporalio/api/cloud/operation/v1/message.rb +27 -0
  21. data/lib/temporalio/api/cloud/region/v1/message.rb +23 -0
  22. data/lib/temporalio/api/command/v1/message.rb +46 -0
  23. data/lib/temporalio/api/common/v1/grpc_status.rb +23 -0
  24. data/lib/temporalio/api/common/v1/message.rb +41 -0
  25. data/lib/temporalio/api/enums/v1/batch_operation.rb +22 -0
  26. data/lib/temporalio/api/enums/v1/command_type.rb +21 -0
  27. data/lib/temporalio/api/enums/v1/common.rb +26 -0
  28. data/lib/temporalio/api/enums/v1/event_type.rb +21 -0
  29. data/lib/temporalio/api/enums/v1/failed_cause.rb +26 -0
  30. data/lib/temporalio/api/enums/v1/namespace.rb +23 -0
  31. data/lib/temporalio/api/enums/v1/query.rb +22 -0
  32. data/lib/temporalio/api/enums/v1/reset.rb +23 -0
  33. data/lib/temporalio/api/enums/v1/schedule.rb +21 -0
  34. data/lib/temporalio/api/enums/v1/task_queue.rb +25 -0
  35. data/lib/temporalio/api/enums/v1/update.rb +22 -0
  36. data/lib/temporalio/api/enums/v1/workflow.rb +30 -0
  37. data/lib/temporalio/api/errordetails/v1/message.rb +42 -0
  38. data/lib/temporalio/api/export/v1/message.rb +24 -0
  39. data/lib/temporalio/api/failure/v1/message.rb +35 -0
  40. data/lib/temporalio/api/filter/v1/message.rb +27 -0
  41. data/lib/temporalio/api/history/v1/message.rb +90 -0
  42. data/lib/temporalio/api/namespace/v1/message.rb +31 -0
  43. data/lib/temporalio/api/nexus/v1/message.rb +40 -0
  44. data/lib/temporalio/api/operatorservice/v1/request_response.rb +49 -0
  45. data/lib/temporalio/api/operatorservice/v1/service.rb +23 -0
  46. data/lib/temporalio/api/operatorservice.rb +3 -0
  47. data/lib/temporalio/api/protocol/v1/message.rb +23 -0
  48. data/lib/temporalio/api/query/v1/message.rb +27 -0
  49. data/lib/temporalio/api/replication/v1/message.rb +26 -0
  50. data/lib/temporalio/api/schedule/v1/message.rb +42 -0
  51. data/lib/temporalio/api/sdk/v1/enhanced_stack_trace.rb +25 -0
  52. data/lib/temporalio/api/sdk/v1/task_complete_metadata.rb +21 -0
  53. data/lib/temporalio/api/sdk/v1/user_metadata.rb +23 -0
  54. data/lib/temporalio/api/sdk/v1/workflow_metadata.rb +23 -0
  55. data/lib/temporalio/api/taskqueue/v1/message.rb +45 -0
  56. data/lib/temporalio/api/update/v1/message.rb +33 -0
  57. data/lib/temporalio/api/version/v1/message.rb +26 -0
  58. data/lib/temporalio/api/workflow/v1/message.rb +43 -0
  59. data/lib/temporalio/api/workflowservice/v1/request_response.rb +189 -0
  60. data/lib/temporalio/api/workflowservice/v1/service.rb +23 -0
  61. data/lib/temporalio/api/workflowservice.rb +3 -0
  62. data/lib/temporalio/api.rb +13 -0
  63. data/lib/temporalio/cancellation.rb +150 -0
  64. data/lib/temporalio/client/activity_id_reference.rb +32 -0
  65. data/lib/temporalio/client/async_activity_handle.rb +110 -0
  66. data/lib/temporalio/client/connection/cloud_service.rb +648 -0
  67. data/lib/temporalio/client/connection/operator_service.rb +249 -0
  68. data/lib/temporalio/client/connection/service.rb +41 -0
  69. data/lib/temporalio/client/connection/workflow_service.rb +1218 -0
  70. data/lib/temporalio/client/connection.rb +270 -0
  71. data/lib/temporalio/client/interceptor.rb +316 -0
  72. data/lib/temporalio/client/workflow_execution.rb +103 -0
  73. data/lib/temporalio/client/workflow_execution_count.rb +36 -0
  74. data/lib/temporalio/client/workflow_execution_status.rb +18 -0
  75. data/lib/temporalio/client/workflow_handle.rb +380 -177
  76. data/lib/temporalio/client/workflow_query_reject_condition.rb +14 -0
  77. data/lib/temporalio/client/workflow_update_handle.rb +67 -0
  78. data/lib/temporalio/client/workflow_update_wait_stage.rb +17 -0
  79. data/lib/temporalio/client.rb +366 -93
  80. data/lib/temporalio/common_enums.rb +24 -0
  81. data/lib/temporalio/converters/data_converter.rb +102 -0
  82. data/lib/temporalio/converters/failure_converter.rb +200 -0
  83. data/lib/temporalio/converters/payload_codec.rb +26 -0
  84. data/lib/temporalio/converters/payload_converter/binary_null.rb +34 -0
  85. data/lib/temporalio/converters/payload_converter/binary_plain.rb +35 -0
  86. data/lib/temporalio/converters/payload_converter/binary_protobuf.rb +42 -0
  87. data/lib/temporalio/converters/payload_converter/composite.rb +62 -0
  88. data/lib/temporalio/converters/payload_converter/encoding.rb +35 -0
  89. data/lib/temporalio/converters/payload_converter/json_plain.rb +44 -0
  90. data/lib/temporalio/converters/payload_converter/json_protobuf.rb +41 -0
  91. data/lib/temporalio/converters/payload_converter.rb +73 -0
  92. data/lib/temporalio/converters.rb +9 -0
  93. data/lib/temporalio/error/failure.rb +119 -94
  94. data/lib/temporalio/error.rb +147 -0
  95. data/lib/temporalio/internal/bridge/api/activity_result/activity_result.rb +34 -0
  96. data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +31 -0
  97. data/lib/temporalio/internal/bridge/api/child_workflow/child_workflow.rb +33 -0
  98. data/lib/temporalio/internal/bridge/api/common/common.rb +26 -0
  99. data/lib/temporalio/internal/bridge/api/core_interface.rb +36 -0
  100. data/lib/temporalio/internal/bridge/api/external_data/external_data.rb +27 -0
  101. data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +52 -0
  102. data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +54 -0
  103. data/lib/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rb +30 -0
  104. data/lib/temporalio/internal/bridge/api.rb +3 -0
  105. data/lib/temporalio/internal/bridge/client.rb +90 -0
  106. data/lib/temporalio/internal/bridge/runtime.rb +53 -0
  107. data/lib/temporalio/internal/bridge/testing.rb +46 -0
  108. data/lib/temporalio/internal/bridge/worker.rb +83 -0
  109. data/lib/temporalio/internal/bridge.rb +36 -0
  110. data/lib/temporalio/internal/client/implementation.rb +525 -0
  111. data/lib/temporalio/internal/proto_utils.rb +54 -0
  112. data/lib/temporalio/internal/worker/activity_worker.rb +345 -0
  113. data/lib/temporalio/internal/worker/multi_runner.rb +169 -0
  114. data/lib/temporalio/internal.rb +7 -0
  115. data/lib/temporalio/retry_policy.rb +39 -80
  116. data/lib/temporalio/runtime.rb +259 -13
  117. data/lib/temporalio/scoped_logger.rb +96 -0
  118. data/lib/temporalio/search_attributes.rb +300 -0
  119. data/lib/temporalio/testing/activity_environment.rb +132 -0
  120. data/lib/temporalio/testing/workflow_environment.rb +113 -88
  121. data/lib/temporalio/testing.rb +4 -169
  122. data/lib/temporalio/version.rb +3 -1
  123. data/lib/temporalio/worker/activity_executor/fiber.rb +49 -0
  124. data/lib/temporalio/worker/activity_executor/thread_pool.rb +254 -0
  125. data/lib/temporalio/worker/activity_executor.rb +55 -0
  126. data/lib/temporalio/worker/interceptor.rb +88 -0
  127. data/lib/temporalio/worker/tuner.rb +151 -0
  128. data/lib/temporalio/worker.rb +385 -163
  129. data/lib/temporalio/workflow_history.rb +22 -0
  130. data/lib/temporalio.rb +2 -7
  131. data/temporalio.gemspec +20 -39
  132. metadata +131 -712
  133. data/bridge/Cargo.lock +0 -2997
  134. data/bridge/Cargo.toml +0 -29
  135. data/bridge/sdk-core/ARCHITECTURE.md +0 -76
  136. data/bridge/sdk-core/Cargo.toml +0 -2
  137. data/bridge/sdk-core/LICENSE.txt +0 -23
  138. data/bridge/sdk-core/README.md +0 -117
  139. data/bridge/sdk-core/arch_docs/diagrams/README.md +0 -10
  140. data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +0 -40
  141. data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +0 -1
  142. data/bridge/sdk-core/arch_docs/sticky_queues.md +0 -51
  143. data/bridge/sdk-core/client/Cargo.toml +0 -40
  144. data/bridge/sdk-core/client/LICENSE.txt +0 -23
  145. data/bridge/sdk-core/client/src/lib.rs +0 -1462
  146. data/bridge/sdk-core/client/src/metrics.rs +0 -174
  147. data/bridge/sdk-core/client/src/raw.rs +0 -932
  148. data/bridge/sdk-core/client/src/retry.rs +0 -763
  149. data/bridge/sdk-core/client/src/workflow_handle/mod.rs +0 -185
  150. data/bridge/sdk-core/core/Cargo.toml +0 -129
  151. data/bridge/sdk-core/core/LICENSE.txt +0 -23
  152. data/bridge/sdk-core/core/benches/workflow_replay.rs +0 -76
  153. data/bridge/sdk-core/core/src/abstractions.rs +0 -355
  154. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +0 -1049
  155. data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +0 -221
  156. data/bridge/sdk-core/core/src/core_tests/determinism.rs +0 -270
  157. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +0 -1046
  158. data/bridge/sdk-core/core/src/core_tests/mod.rs +0 -100
  159. data/bridge/sdk-core/core/src/core_tests/queries.rs +0 -893
  160. data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +0 -65
  161. data/bridge/sdk-core/core/src/core_tests/workers.rs +0 -257
  162. data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +0 -124
  163. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +0 -2433
  164. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +0 -609
  165. data/bridge/sdk-core/core/src/internal_flags.rs +0 -136
  166. data/bridge/sdk-core/core/src/lib.rs +0 -289
  167. data/bridge/sdk-core/core/src/pollers/mod.rs +0 -54
  168. data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +0 -297
  169. data/bridge/sdk-core/core/src/protosext/mod.rs +0 -428
  170. data/bridge/sdk-core/core/src/replay/mod.rs +0 -215
  171. data/bridge/sdk-core/core/src/retry_logic.rs +0 -202
  172. data/bridge/sdk-core/core/src/telemetry/log_export.rs +0 -190
  173. data/bridge/sdk-core/core/src/telemetry/metrics.rs +0 -462
  174. data/bridge/sdk-core/core/src/telemetry/mod.rs +0 -423
  175. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +0 -83
  176. data/bridge/sdk-core/core/src/test_help/mod.rs +0 -939
  177. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +0 -536
  178. data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +0 -89
  179. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +0 -1278
  180. data/bridge/sdk-core/core/src/worker/activities.rs +0 -557
  181. data/bridge/sdk-core/core/src/worker/client/mocks.rs +0 -107
  182. data/bridge/sdk-core/core/src/worker/client.rs +0 -389
  183. data/bridge/sdk-core/core/src/worker/mod.rs +0 -677
  184. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +0 -35
  185. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +0 -99
  186. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +0 -1111
  187. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +0 -964
  188. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +0 -294
  189. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +0 -168
  190. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +0 -918
  191. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +0 -137
  192. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +0 -158
  193. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +0 -130
  194. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +0 -1525
  195. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +0 -324
  196. data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +0 -179
  197. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +0 -659
  198. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +0 -439
  199. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +0 -435
  200. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +0 -175
  201. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +0 -249
  202. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +0 -85
  203. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +0 -1280
  204. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +0 -269
  205. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +0 -213
  206. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +0 -1305
  207. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +0 -1276
  208. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +0 -128
  209. data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +0 -125
  210. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +0 -85
  211. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +0 -117
  212. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +0 -24
  213. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +0 -715
  214. data/bridge/sdk-core/core-api/Cargo.toml +0 -33
  215. data/bridge/sdk-core/core-api/LICENSE.txt +0 -23
  216. data/bridge/sdk-core/core-api/src/errors.rs +0 -62
  217. data/bridge/sdk-core/core-api/src/lib.rs +0 -113
  218. data/bridge/sdk-core/core-api/src/telemetry.rs +0 -141
  219. data/bridge/sdk-core/core-api/src/worker.rs +0 -161
  220. data/bridge/sdk-core/etc/deps.svg +0 -162
  221. data/bridge/sdk-core/etc/dynamic-config.yaml +0 -2
  222. data/bridge/sdk-core/etc/otel-collector-config.yaml +0 -36
  223. data/bridge/sdk-core/etc/prometheus.yaml +0 -6
  224. data/bridge/sdk-core/etc/regen-depgraph.sh +0 -5
  225. data/bridge/sdk-core/fsm/Cargo.toml +0 -18
  226. data/bridge/sdk-core/fsm/LICENSE.txt +0 -23
  227. data/bridge/sdk-core/fsm/README.md +0 -3
  228. data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +0 -27
  229. data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +0 -23
  230. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +0 -650
  231. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +0 -8
  232. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +0 -18
  233. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +0 -12
  234. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +0 -41
  235. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +0 -14
  236. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +0 -11
  237. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +0 -32
  238. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +0 -31
  239. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +0 -46
  240. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +0 -29
  241. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +0 -12
  242. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +0 -32
  243. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +0 -18
  244. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +0 -5
  245. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +0 -11
  246. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +0 -5
  247. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +0 -11
  248. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +0 -5
  249. data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +0 -14
  250. data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +0 -23
  251. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +0 -254
  252. data/bridge/sdk-core/fsm/src/lib.rs +0 -2
  253. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
  254. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-23_history.bin +0 -0
  255. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-85_history.bin +0 -0
  256. data/bridge/sdk-core/histories/fail_wf_task.bin +0 -0
  257. data/bridge/sdk-core/histories/timer_workflow_history.bin +0 -0
  258. data/bridge/sdk-core/integ-with-otel.sh +0 -7
  259. data/bridge/sdk-core/protos/api_upstream/README.md +0 -9
  260. data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +0 -40
  261. data/bridge/sdk-core/protos/api_upstream/buf.yaml +0 -9
  262. data/bridge/sdk-core/protos/api_upstream/build/go.mod +0 -7
  263. data/bridge/sdk-core/protos/api_upstream/build/go.sum +0 -5
  264. data/bridge/sdk-core/protos/api_upstream/build/tools.go +0 -29
  265. data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +0 -141
  266. data/bridge/sdk-core/protos/api_upstream/go.mod +0 -6
  267. data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +0 -89
  268. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +0 -248
  269. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +0 -123
  270. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +0 -47
  271. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +0 -52
  272. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +0 -56
  273. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +0 -170
  274. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +0 -123
  275. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +0 -51
  276. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +0 -50
  277. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +0 -41
  278. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +0 -60
  279. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +0 -59
  280. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +0 -56
  281. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +0 -122
  282. data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +0 -108
  283. data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +0 -114
  284. data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +0 -56
  285. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +0 -787
  286. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +0 -99
  287. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +0 -124
  288. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +0 -80
  289. data/bridge/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +0 -57
  290. data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +0 -61
  291. data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +0 -55
  292. data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +0 -379
  293. data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +0 -63
  294. data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +0 -108
  295. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +0 -111
  296. data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +0 -59
  297. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +0 -146
  298. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +0 -1199
  299. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +0 -415
  300. data/bridge/sdk-core/protos/grpc/health/v1/health.proto +0 -63
  301. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +0 -79
  302. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +0 -80
  303. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +0 -78
  304. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +0 -16
  305. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +0 -31
  306. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +0 -31
  307. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +0 -270
  308. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +0 -305
  309. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +0 -35
  310. data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +0 -38
  311. data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +0 -13
  312. data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +0 -141
  313. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +0 -63
  314. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +0 -90
  315. data/bridge/sdk-core/rustfmt.toml +0 -1
  316. data/bridge/sdk-core/sdk/Cargo.toml +0 -48
  317. data/bridge/sdk-core/sdk/LICENSE.txt +0 -23
  318. data/bridge/sdk-core/sdk/src/activity_context.rs +0 -230
  319. data/bridge/sdk-core/sdk/src/app_data.rs +0 -37
  320. data/bridge/sdk-core/sdk/src/interceptors.rs +0 -50
  321. data/bridge/sdk-core/sdk/src/lib.rs +0 -861
  322. data/bridge/sdk-core/sdk/src/payload_converter.rs +0 -11
  323. data/bridge/sdk-core/sdk/src/workflow_context/options.rs +0 -295
  324. data/bridge/sdk-core/sdk/src/workflow_context.rs +0 -694
  325. data/bridge/sdk-core/sdk/src/workflow_future.rs +0 -500
  326. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +0 -33
  327. data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +0 -23
  328. data/bridge/sdk-core/sdk-core-protos/build.rs +0 -142
  329. data/bridge/sdk-core/sdk-core-protos/src/constants.rs +0 -7
  330. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +0 -557
  331. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +0 -234
  332. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +0 -2088
  333. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +0 -48
  334. data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +0 -14
  335. data/bridge/sdk-core/test-utils/Cargo.toml +0 -38
  336. data/bridge/sdk-core/test-utils/src/canned_histories.rs +0 -1389
  337. data/bridge/sdk-core/test-utils/src/histfetch.rs +0 -28
  338. data/bridge/sdk-core/test-utils/src/lib.rs +0 -709
  339. data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +0 -50
  340. data/bridge/sdk-core/test-utils/src/workflows.rs +0 -29
  341. data/bridge/sdk-core/tests/fuzzy_workflow.rs +0 -130
  342. data/bridge/sdk-core/tests/heavy_tests.rs +0 -265
  343. data/bridge/sdk-core/tests/integ_tests/client_tests.rs +0 -36
  344. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +0 -150
  345. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +0 -223
  346. data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +0 -239
  347. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +0 -90
  348. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +0 -314
  349. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +0 -151
  350. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +0 -902
  351. data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +0 -61
  352. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +0 -60
  353. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +0 -51
  354. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +0 -51
  355. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +0 -64
  356. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +0 -47
  357. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +0 -669
  358. data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +0 -54
  359. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +0 -92
  360. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +0 -228
  361. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +0 -94
  362. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +0 -171
  363. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +0 -85
  364. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +0 -120
  365. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +0 -77
  366. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +0 -596
  367. data/bridge/sdk-core/tests/main.rs +0 -103
  368. data/bridge/sdk-core/tests/runner.rs +0 -132
  369. data/bridge/sdk-core/tests/wf_input_replay.rs +0 -32
  370. data/bridge/src/connection.rs +0 -202
  371. data/bridge/src/lib.rs +0 -494
  372. data/bridge/src/runtime.rs +0 -54
  373. data/bridge/src/test_server.rs +0 -153
  374. data/bridge/src/worker.rs +0 -197
  375. data/ext/Rakefile +0 -9
  376. data/lib/gen/dependencies/gogoproto/gogo_pb.rb +0 -14
  377. data/lib/gen/temporal/api/batch/v1/message_pb.rb +0 -50
  378. data/lib/gen/temporal/api/command/v1/message_pb.rb +0 -160
  379. data/lib/gen/temporal/api/common/v1/message_pb.rb +0 -73
  380. data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +0 -33
  381. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +0 -37
  382. data/lib/gen/temporal/api/enums/v1/common_pb.rb +0 -42
  383. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +0 -68
  384. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +0 -79
  385. data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +0 -37
  386. data/lib/gen/temporal/api/enums/v1/query_pb.rb +0 -31
  387. data/lib/gen/temporal/api/enums/v1/reset_pb.rb +0 -24
  388. data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +0 -28
  389. data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +0 -30
  390. data/lib/gen/temporal/api/enums/v1/update_pb.rb +0 -25
  391. data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +0 -89
  392. data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +0 -84
  393. data/lib/gen/temporal/api/failure/v1/message_pb.rb +0 -83
  394. data/lib/gen/temporal/api/filter/v1/message_pb.rb +0 -40
  395. data/lib/gen/temporal/api/history/v1/message_pb.rb +0 -498
  396. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +0 -64
  397. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +0 -88
  398. data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +0 -20
  399. data/lib/gen/temporal/api/protocol/v1/message_pb.rb +0 -30
  400. data/lib/gen/temporal/api/query/v1/message_pb.rb +0 -38
  401. data/lib/gen/temporal/api/replication/v1/message_pb.rb +0 -37
  402. data/lib/gen/temporal/api/schedule/v1/message_pb.rb +0 -149
  403. data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +0 -23
  404. data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +0 -73
  405. data/lib/gen/temporal/api/testservice/v1/request_response_pb.rb +0 -49
  406. data/lib/gen/temporal/api/testservice/v1/service_pb.rb +0 -21
  407. data/lib/gen/temporal/api/update/v1/message_pb.rb +0 -72
  408. data/lib/gen/temporal/api/version/v1/message_pb.rb +0 -41
  409. data/lib/gen/temporal/api/workflow/v1/message_pb.rb +0 -111
  410. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +0 -798
  411. data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +0 -20
  412. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +0 -62
  413. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +0 -61
  414. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +0 -61
  415. data/lib/gen/temporal/sdk/core/common/common_pb.rb +0 -26
  416. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +0 -40
  417. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +0 -31
  418. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +0 -171
  419. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +0 -200
  420. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +0 -41
  421. data/lib/temporalio/bridge/connect_options.rb +0 -15
  422. data/lib/temporalio/bridge/error.rb +0 -8
  423. data/lib/temporalio/bridge/retry_config.rb +0 -24
  424. data/lib/temporalio/bridge/tls_options.rb +0 -19
  425. data/lib/temporalio/bridge.rb +0 -14
  426. data/lib/temporalio/client/implementation.rb +0 -340
  427. data/lib/temporalio/connection/retry_config.rb +0 -44
  428. data/lib/temporalio/connection/service.rb +0 -20
  429. data/lib/temporalio/connection/test_service.rb +0 -92
  430. data/lib/temporalio/connection/tls_options.rb +0 -51
  431. data/lib/temporalio/connection/workflow_service.rb +0 -731
  432. data/lib/temporalio/connection.rb +0 -86
  433. data/lib/temporalio/data_converter.rb +0 -191
  434. data/lib/temporalio/error/workflow_failure.rb +0 -19
  435. data/lib/temporalio/errors.rb +0 -40
  436. data/lib/temporalio/failure_converter/base.rb +0 -26
  437. data/lib/temporalio/failure_converter/basic.rb +0 -319
  438. data/lib/temporalio/failure_converter.rb +0 -7
  439. data/lib/temporalio/interceptor/activity_inbound.rb +0 -22
  440. data/lib/temporalio/interceptor/activity_outbound.rb +0 -24
  441. data/lib/temporalio/interceptor/chain.rb +0 -28
  442. data/lib/temporalio/interceptor/client.rb +0 -127
  443. data/lib/temporalio/interceptor.rb +0 -22
  444. data/lib/temporalio/payload_codec/base.rb +0 -32
  445. data/lib/temporalio/payload_converter/base.rb +0 -24
  446. data/lib/temporalio/payload_converter/bytes.rb +0 -27
  447. data/lib/temporalio/payload_converter/composite.rb +0 -49
  448. data/lib/temporalio/payload_converter/encoding_base.rb +0 -35
  449. data/lib/temporalio/payload_converter/json.rb +0 -26
  450. data/lib/temporalio/payload_converter/nil.rb +0 -26
  451. data/lib/temporalio/payload_converter.rb +0 -14
  452. data/lib/temporalio/retry_state.rb +0 -35
  453. data/lib/temporalio/testing/time_skipping_handle.rb +0 -32
  454. data/lib/temporalio/testing/time_skipping_interceptor.rb +0 -23
  455. data/lib/temporalio/timeout_type.rb +0 -29
  456. data/lib/temporalio/worker/activity_runner.rb +0 -114
  457. data/lib/temporalio/worker/activity_worker.rb +0 -164
  458. data/lib/temporalio/worker/reactor.rb +0 -46
  459. data/lib/temporalio/worker/runner.rb +0 -63
  460. data/lib/temporalio/worker/sync_worker.rb +0 -124
  461. data/lib/temporalio/worker/thread_pool_executor.rb +0 -51
  462. data/lib/temporalio/workflow/async.rb +0 -46
  463. data/lib/temporalio/workflow/execution_info.rb +0 -54
  464. data/lib/temporalio/workflow/execution_status.rb +0 -36
  465. data/lib/temporalio/workflow/future.rb +0 -138
  466. data/lib/temporalio/workflow/id_reuse_policy.rb +0 -36
  467. data/lib/temporalio/workflow/info.rb +0 -76
  468. data/lib/temporalio/workflow/query_reject_condition.rb +0 -33
  469. data/lib/thermite_patch.rb +0 -33
  470. data/sig/async.rbs +0 -17
  471. data/sig/protobuf.rbs +0 -16
  472. data/sig/protos/dependencies/gogoproto/gogo.rbs +0 -914
  473. data/sig/protos/google/protobuf/any.rbs +0 -157
  474. data/sig/protos/google/protobuf/descriptor.rbs +0 -2825
  475. data/sig/protos/google/protobuf/duration.rbs +0 -114
  476. data/sig/protos/google/protobuf/empty.rbs +0 -36
  477. data/sig/protos/google/protobuf/timestamp.rbs +0 -145
  478. data/sig/protos/google/protobuf/wrappers.rbs +0 -358
  479. data/sig/protos/temporal/api/batch/v1/message.rbs +0 -300
  480. data/sig/protos/temporal/api/command/v1/message.rbs +0 -1399
  481. data/sig/protos/temporal/api/common/v1/message.rbs +0 -528
  482. data/sig/protos/temporal/api/enums/v1/batch_operation.rbs +0 -79
  483. data/sig/protos/temporal/api/enums/v1/command_type.rbs +0 -68
  484. data/sig/protos/temporal/api/enums/v1/common.rbs +0 -118
  485. data/sig/protos/temporal/api/enums/v1/event_type.rbs +0 -264
  486. data/sig/protos/temporal/api/enums/v1/failed_cause.rbs +0 -277
  487. data/sig/protos/temporal/api/enums/v1/namespace.rbs +0 -108
  488. data/sig/protos/temporal/api/enums/v1/query.rbs +0 -81
  489. data/sig/protos/temporal/api/enums/v1/reset.rbs +0 -44
  490. data/sig/protos/temporal/api/enums/v1/schedule.rbs +0 -72
  491. data/sig/protos/temporal/api/enums/v1/task_queue.rbs +0 -92
  492. data/sig/protos/temporal/api/enums/v1/update.rbs +0 -64
  493. data/sig/protos/temporal/api/enums/v1/workflow.rbs +0 -371
  494. data/sig/protos/temporal/api/errordetails/v1/message.rbs +0 -551
  495. data/sig/protos/temporal/api/failure/v1/message.rbs +0 -581
  496. data/sig/protos/temporal/api/filter/v1/message.rbs +0 -171
  497. data/sig/protos/temporal/api/history/v1/message.rbs +0 -4609
  498. data/sig/protos/temporal/api/namespace/v1/message.rbs +0 -410
  499. data/sig/protos/temporal/api/operatorservice/v1/request_response.rbs +0 -643
  500. data/sig/protos/temporal/api/operatorservice/v1/service.rbs +0 -17
  501. data/sig/protos/temporal/api/protocol/v1/message.rbs +0 -84
  502. data/sig/protos/temporal/api/query/v1/message.rbs +0 -182
  503. data/sig/protos/temporal/api/replication/v1/message.rbs +0 -148
  504. data/sig/protos/temporal/api/schedule/v1/message.rbs +0 -1488
  505. data/sig/protos/temporal/api/sdk/v1/task_complete_metadata.rbs +0 -110
  506. data/sig/protos/temporal/api/taskqueue/v1/message.rbs +0 -486
  507. data/sig/protos/temporal/api/testservice/v1/request_response.rbs +0 -249
  508. data/sig/protos/temporal/api/testservice/v1/service.rbs +0 -15
  509. data/sig/protos/temporal/api/update/v1/message.rbs +0 -489
  510. data/sig/protos/temporal/api/version/v1/message.rbs +0 -184
  511. data/sig/protos/temporal/api/workflow/v1/message.rbs +0 -824
  512. data/sig/protos/temporal/api/workflowservice/v1/request_response.rbs +0 -7250
  513. data/sig/protos/temporal/api/workflowservice/v1/service.rbs +0 -22
  514. data/sig/protos/temporal/sdk/core/activity_result/activity_result.rbs +0 -380
  515. data/sig/protos/temporal/sdk/core/activity_task/activity_task.rbs +0 -386
  516. data/sig/protos/temporal/sdk/core/child_workflow/child_workflow.rbs +0 -323
  517. data/sig/protos/temporal/sdk/core/common/common.rbs +0 -62
  518. data/sig/protos/temporal/sdk/core/core_interface.rbs +0 -101
  519. data/sig/protos/temporal/sdk/core/external_data/external_data.rbs +0 -119
  520. data/sig/protos/temporal/sdk/core/workflow_activation/workflow_activation.rbs +0 -1473
  521. data/sig/protos/temporal/sdk/core/workflow_commands/workflow_commands.rbs +0 -1784
  522. data/sig/protos/temporal/sdk/core/workflow_completion/workflow_completion.rbs +0 -180
  523. data/sig/ruby.rbs +0 -12
  524. data/sig/temporalio/activity/context.rbs +0 -29
  525. data/sig/temporalio/activity/info.rbs +0 -43
  526. data/sig/temporalio/activity.rbs +0 -19
  527. data/sig/temporalio/bridge/connect_options.rbs +0 -19
  528. data/sig/temporalio/bridge/error.rbs +0 -8
  529. data/sig/temporalio/bridge/retry_config.rbs +0 -21
  530. data/sig/temporalio/bridge/tls_options.rbs +0 -17
  531. data/sig/temporalio/bridge.rbs +0 -71
  532. data/sig/temporalio/client/implementation.rbs +0 -38
  533. data/sig/temporalio/client/workflow_handle.rbs +0 -41
  534. data/sig/temporalio/client.rbs +0 -35
  535. data/sig/temporalio/connection/retry_config.rbs +0 -37
  536. data/sig/temporalio/connection/service.rbs +0 -14
  537. data/sig/temporalio/connection/test_service.rbs +0 -13
  538. data/sig/temporalio/connection/tls_options.rbs +0 -43
  539. data/sig/temporalio/connection/workflow_service.rbs +0 -48
  540. data/sig/temporalio/connection.rbs +0 -30
  541. data/sig/temporalio/data_converter.rbs +0 -35
  542. data/sig/temporalio/error/failure.rbs +0 -121
  543. data/sig/temporalio/error/workflow_failure.rbs +0 -9
  544. data/sig/temporalio/errors.rbs +0 -36
  545. data/sig/temporalio/failure_converter/base.rbs +0 -12
  546. data/sig/temporalio/failure_converter/basic.rbs +0 -86
  547. data/sig/temporalio/failure_converter.rbs +0 -5
  548. data/sig/temporalio/interceptor/activity_inbound.rbs +0 -21
  549. data/sig/temporalio/interceptor/activity_outbound.rbs +0 -10
  550. data/sig/temporalio/interceptor/chain.rbs +0 -24
  551. data/sig/temporalio/interceptor/client.rbs +0 -148
  552. data/sig/temporalio/interceptor.rbs +0 -6
  553. data/sig/temporalio/payload_codec/base.rbs +0 -12
  554. data/sig/temporalio/payload_converter/base.rbs +0 -12
  555. data/sig/temporalio/payload_converter/bytes.rbs +0 -9
  556. data/sig/temporalio/payload_converter/composite.rbs +0 -19
  557. data/sig/temporalio/payload_converter/encoding_base.rbs +0 -14
  558. data/sig/temporalio/payload_converter/json.rbs +0 -9
  559. data/sig/temporalio/payload_converter/nil.rbs +0 -9
  560. data/sig/temporalio/payload_converter.rbs +0 -5
  561. data/sig/temporalio/retry_policy.rbs +0 -25
  562. data/sig/temporalio/retry_state.rbs +0 -20
  563. data/sig/temporalio/runtime.rbs +0 -12
  564. data/sig/temporalio/testing/time_skipping_handle.rbs +0 -15
  565. data/sig/temporalio/testing/time_skipping_interceptor.rbs +0 -13
  566. data/sig/temporalio/testing/workflow_environment.rbs +0 -22
  567. data/sig/temporalio/testing.rbs +0 -35
  568. data/sig/temporalio/timeout_type.rbs +0 -15
  569. data/sig/temporalio/version.rbs +0 -3
  570. data/sig/temporalio/worker/activity_runner.rbs +0 -35
  571. data/sig/temporalio/worker/activity_worker.rbs +0 -44
  572. data/sig/temporalio/worker/reactor.rbs +0 -22
  573. data/sig/temporalio/worker/runner.rbs +0 -21
  574. data/sig/temporalio/worker/sync_worker.rbs +0 -23
  575. data/sig/temporalio/worker/thread_pool_executor.rbs +0 -23
  576. data/sig/temporalio/worker.rbs +0 -46
  577. data/sig/temporalio/workflow/async.rbs +0 -9
  578. data/sig/temporalio/workflow/execution_info.rbs +0 -55
  579. data/sig/temporalio/workflow/execution_status.rbs +0 -21
  580. data/sig/temporalio/workflow/future.rbs +0 -40
  581. data/sig/temporalio/workflow/id_reuse_policy.rbs +0 -15
  582. data/sig/temporalio/workflow/info.rbs +0 -55
  583. data/sig/temporalio/workflow/query_reject_condition.rbs +0 -14
  584. data/sig/temporalio.rbs +0 -2
  585. data/sig/thermite_patch.rbs +0 -15
@@ -1,33 +0,0 @@
1
- [package]
2
- name = "temporal-sdk-core-api"
3
- version = "0.1.0"
4
- edition = "2021"
5
- authors = ["Spencer Judge <spencer@temporal.io>"]
6
- license-file = "LICENSE.txt"
7
- description = "Interface definitions for the Temporal Core SDK"
8
- homepage = "https://temporal.io/"
9
- repository = "https://github.com/temporalio/sdk-core"
10
- keywords = ["temporal", "workflow"]
11
- categories = ["development-tools"]
12
-
13
- # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
14
-
15
- [dependencies]
16
- async-trait = "0.1"
17
- derive_builder = "0.12"
18
- prost-types = "0.11"
19
- serde = { version = "1.0", default_features = false, features = ["derive"] }
20
- serde_json = "1.0"
21
- thiserror = "1.0"
22
- tokio = "1.24"
23
- tonic = "0.8"
24
- tracing-core = "0.1"
25
- url = "2.3"
26
-
27
- [dependencies.temporal-sdk-core-protos]
28
- path = "../sdk-core-protos"
29
- version = "0.1"
30
-
31
- [dependencies.temporal-client]
32
- path = "../client"
33
- version = "0.1"
@@ -1,23 +0,0 @@
1
- Temporal Core SDK
2
-
3
- The MIT License
4
-
5
- Copyright (c) 2021 Temporal Technologies, Inc. All Rights Reserved
6
-
7
- Permission is hereby granted, free of charge, to any person obtaining a copy
8
- of this software and associated documentation files (the "Software"), to deal
9
- in the Software without restriction, including without limitation the rights
10
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- copies of the Software, and to permit persons to whom the Software is
12
- furnished to do so, subject to the following conditions:
13
-
14
- The above copyright notice and this permission notice shall be included in all
15
- copies or substantial portions of the Software.
16
-
17
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
- SOFTWARE.
@@ -1,62 +0,0 @@
1
- //! Error types exposed by public APIs
2
-
3
- use temporal_sdk_core_protos::coresdk::activity_result::ActivityExecutionResult;
4
-
5
- /// Errors thrown by [crate::Worker::poll_workflow_activation]
6
- #[derive(thiserror::Error, Debug)]
7
- pub enum PollWfError {
8
- /// [crate::Worker::shutdown] was called, and there are no more replay tasks to be handled. Lang
9
- /// must call [crate::Worker::complete_workflow_activation] for any remaining tasks, and then may
10
- /// exit.
11
- #[error("Core is shut down and there are no more workflow replay tasks")]
12
- ShutDown,
13
- /// Unhandled error when calling the temporal server. Core will attempt to retry any non-fatal
14
- /// errors, so lang should consider this fatal.
15
- #[error("Unhandled grpc error when workflow polling: {0:?}")]
16
- TonicError(#[from] tonic::Status),
17
- /// Unhandled error when completing a workflow during a poll -- this can happen when there is no
18
- /// work for lang to perform, but the server sent us a workflow task (EX: An activity completed
19
- /// even though we already cancelled it)
20
- #[error("Unhandled error when auto-completing workflow task: {0:?}")]
21
- AutocompleteError(#[from] CompleteWfError),
22
- }
23
-
24
- /// Errors thrown by [crate::Worker::poll_activity_task]
25
- #[derive(thiserror::Error, Debug)]
26
- pub enum PollActivityError {
27
- /// [crate::Worker::shutdown] was called, we will no longer fetch new activity tasks. Lang must
28
- /// ensure it is finished with any workflow replay, see [PollWfError::ShutDown]
29
- #[error("Core is shut down")]
30
- ShutDown,
31
- /// Unhandled error when calling the temporal server. Core will attempt to retry any non-fatal
32
- /// errors, so lang should consider this fatal.
33
- #[error("Unhandled grpc error when activity polling: {0:?}")]
34
- TonicError(#[from] tonic::Status),
35
- }
36
-
37
- /// Errors thrown by [crate::Worker::complete_workflow_activation]
38
- #[derive(thiserror::Error, Debug)]
39
- #[allow(clippy::large_enum_variant)]
40
- pub enum CompleteWfError {
41
- /// Lang SDK sent us a malformed workflow completion. This likely means a bug in the lang sdk.
42
- #[error("Lang SDK sent us a malformed workflow completion for run ({run_id}): {reason}")]
43
- MalformedWorkflowCompletion {
44
- /// Reason the completion was malformed
45
- reason: String,
46
- /// The run associated with the completion
47
- run_id: String,
48
- },
49
- }
50
-
51
- /// Errors thrown by [crate::Worker::complete_activity_task]
52
- #[derive(thiserror::Error, Debug)]
53
- pub enum CompleteActivityError {
54
- /// Lang SDK sent us a malformed activity completion. This likely means a bug in the lang sdk.
55
- #[error("Lang SDK sent us a malformed activity completion ({reason}): {completion:?}")]
56
- MalformedActivityCompletion {
57
- /// Reason the completion was malformed
58
- reason: String,
59
- /// The completion, which may not be included to avoid unnecessary copies.
60
- completion: Option<ActivityExecutionResult>,
61
- },
62
- }
@@ -1,113 +0,0 @@
1
- pub mod errors;
2
- pub mod telemetry;
3
- pub mod worker;
4
-
5
- use crate::{
6
- errors::{CompleteActivityError, CompleteWfError, PollActivityError, PollWfError},
7
- worker::WorkerConfig,
8
- };
9
- use temporal_sdk_core_protos::coresdk::{
10
- activity_task::ActivityTask, workflow_activation::WorkflowActivation,
11
- workflow_completion::WorkflowActivationCompletion, ActivityHeartbeat, ActivityTaskCompletion,
12
- };
13
-
14
- /// This trait is the primary way by which language specific SDKs interact with the core SDK.
15
- /// It represents one worker, which has a (potentially shared) client for connecting to the service
16
- /// and is bound to a specific task queue.
17
- #[async_trait::async_trait]
18
- pub trait Worker: Send + Sync {
19
- /// Ask the worker for some work, returning a [WorkflowActivation]. It is then the language
20
- /// SDK's responsibility to call the appropriate workflow code with the provided inputs. Blocks
21
- /// indefinitely until such work is available or [Worker::shutdown] is called.
22
- ///
23
- /// It is important to understand that all activations must be responded to. There can only
24
- /// be one outstanding activation for a particular run of a workflow at any time. If an
25
- /// activation is not responded to, it will cause that workflow to become stuck forever.
26
- ///
27
- /// Activations that contain only a `remove_from_cache` job should not cause the workflow code
28
- /// to be invoked and may be responded to with an empty command list. Eviction jobs may also
29
- /// appear with other jobs, but will always appear last in the job list. In this case it is
30
- /// expected that the workflow code will be invoked, and the response produced as normal, but
31
- /// the caller should evict the run after doing so.
32
- ///
33
- /// It is rarely a good idea to call poll concurrently. It handles polling the server
34
- /// concurrently internally.
35
- async fn poll_workflow_activation(&self) -> Result<WorkflowActivation, PollWfError>;
36
-
37
- /// Ask the worker for some work, returning an [ActivityTask]. It is then the language SDK's
38
- /// responsibility to call the appropriate activity code with the provided inputs. Blocks
39
- /// indefinitely until such work is available or [Worker::shutdown] is called.
40
- ///
41
- /// The returned activation is guaranteed to be for the same task queue / worker which was
42
- /// provided as the `task_queue` argument.
43
- ///
44
- /// It is rarely a good idea to call poll concurrently. It handles polling the server
45
- /// concurrently internally.
46
- async fn poll_activity_task(&self) -> Result<ActivityTask, PollActivityError>;
47
-
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.
52
- async fn complete_workflow_activation(
53
- &self,
54
- completion: WorkflowActivationCompletion,
55
- ) -> Result<(), CompleteWfError>;
56
-
57
- /// Tell the worker that an activity has finished executing. May (and should) be freely called
58
- /// concurrently.
59
- async fn complete_activity_task(
60
- &self,
61
- completion: ActivityTaskCompletion,
62
- ) -> Result<(), CompleteActivityError>;
63
-
64
- /// Notify the Temporal service that an activity is still alive. Long running activities that
65
- /// take longer than `activity_heartbeat_timeout` to finish must call this function in order to
66
- /// report progress, otherwise the activity will timeout and a new attempt will be scheduled.
67
- ///
68
- /// The first heartbeat request will be sent immediately, subsequent rapid calls to this
69
- /// function will result in heartbeat requests being aggregated and the last one received during
70
- /// the aggregation period will be sent to the server, where that period is defined as half the
71
- /// heartbeat timeout.
72
- ///
73
- /// Unlike Java/Go SDKs we do not return cancellation status as part of heartbeat response and
74
- /// instead send it as a separate activity task to the lang, decoupling heartbeat and
75
- /// cancellation processing.
76
- ///
77
- /// For now activity still need to send heartbeats if they want to receive cancellation
78
- /// requests. In the future we will change this and will dispatch cancellations more
79
- /// proactively. Note that this function does not block on the server call and returns
80
- /// immediately. Underlying validation errors are swallowed and logged, this has been agreed to
81
- /// be optimal behavior for the user as we don't want to break activity execution due to badly
82
- /// configured heartbeat options.
83
- fn record_activity_heartbeat(&self, details: ActivityHeartbeat);
84
-
85
- /// Request that a workflow be evicted by its run id. This will generate a workflow activation
86
- /// with the eviction job inside it to be eventually returned by
87
- /// [Worker::poll_workflow_activation]. If the workflow had any existing outstanding activations,
88
- /// such activations are invalidated and subsequent completions of them will do nothing and log
89
- /// a warning.
90
- fn request_workflow_eviction(&self, run_id: &str);
91
-
92
- /// Return this worker's config
93
- fn get_config(&self) -> &WorkerConfig;
94
-
95
- /// Initiate shutdown. See [Worker::shutdown], this is just a sync version that starts the
96
- /// process. You can then wait on `shutdown` or [Worker::finalize_shutdown].
97
- fn initiate_shutdown(&self);
98
-
99
- /// Initiates async shutdown procedure, eventually ceases all polling of the server and shuts
100
- /// down this worker. [Worker::poll_workflow_activation] should be called until it
101
- /// returns [PollWfError::ShutDown] to ensure that any workflows which are still undergoing
102
- /// replay have an opportunity to finish. This means that the lang sdk will need to call
103
- /// [Worker::complete_workflow_activation] for those workflows until they are done. At that point,
104
- /// the lang SDK can end the process, or drop the [Worker] instance, which will close the
105
- /// connection.
106
- async fn shutdown(&self);
107
-
108
- /// Completes shutdown and frees all resources. You should avoid simply dropping workers, as
109
- /// this does not allow async tasks to report any panics that may have occurred cleanly.
110
- ///
111
- /// This should be called only after [Worker::shutdown] has resolved.
112
- async fn finalize_shutdown(self);
113
- }
@@ -1,141 +0,0 @@
1
- use std::{
2
- collections::HashMap,
3
- net::SocketAddr,
4
- time::{Duration, SystemTime, UNIX_EPOCH},
5
- };
6
- use tracing_core::Level;
7
- use url::Url;
8
-
9
- /// Each core runtime instance has a telemetry subsystem associated with it, this trait defines the
10
- /// operations that lang might want to perform on that telemetry after it's initialized.
11
- pub trait CoreTelemetry {
12
- /// Each worker buffers logs that should be shuttled over to lang so that they may be rendered
13
- /// with the user's desired logging library. Use this function to grab the most recent buffered
14
- /// logs since the last time it was called. A fixed number of such logs are retained at maximum,
15
- /// with the oldest being dropped when full.
16
- ///
17
- /// Returns the list of logs from oldest to newest. Returns an empty vec if the feature is not
18
- /// configured.
19
- fn fetch_buffered_logs(&self) -> Vec<CoreLog>;
20
- }
21
-
22
- /// Telemetry configuration options. Construct with [TelemetryOptionsBuilder]
23
- #[derive(Debug, Clone, derive_builder::Builder)]
24
- #[non_exhaustive]
25
- pub struct TelemetryOptions {
26
- /// Optional trace exporter - set as None to disable.
27
- #[builder(setter(into, strip_option), default)]
28
- pub tracing: Option<TraceExportConfig>,
29
- /// Optional logger - set as None to disable.
30
- #[builder(setter(into, strip_option), default)]
31
- pub logging: Option<Logger>,
32
- /// Optional metrics exporter - set as None to disable.
33
- #[builder(setter(into, strip_option), default)]
34
- pub metrics: Option<MetricsExporter>,
35
-
36
- /// If set true, do not prefix metrics with `temporal_`. Will be removed eventually as
37
- /// the prefix is consistent with other SDKs.
38
- #[builder(default)]
39
- pub no_temporal_prefix_for_metrics: bool,
40
-
41
- /// Specifies the aggregation temporality for metric export. Defaults to cumulative.
42
- #[builder(default = "MetricTemporality::Cumulative")]
43
- pub metric_temporality: MetricTemporality,
44
- }
45
-
46
- /// Options for exporting to an OpenTelemetry Collector
47
- #[derive(Debug, Clone)]
48
- pub struct OtelCollectorOptions {
49
- /// The url of the OTel collector to export telemetry and metrics to. Lang SDK should also
50
- /// export to this same collector.
51
- pub url: Url,
52
- /// Optional set of HTTP headers to send to the Collector, e.g for authentication.
53
- pub headers: HashMap<String, String>,
54
- /// Optionally specify how frequently metrics should be exported. Defaults to 1 second.
55
- pub metric_periodicity: Option<Duration>,
56
- }
57
-
58
- /// Configuration for the external export of traces
59
- #[derive(Debug, Clone)]
60
- pub struct TraceExportConfig {
61
- /// An [EnvFilter](https://docs.rs/tracing-subscriber/latest/tracing_subscriber/struct.EnvFilter.html) filter string.
62
- pub filter: String,
63
- /// Where they should go
64
- pub exporter: TraceExporter,
65
- }
66
-
67
- /// Control where traces are exported.
68
- #[derive(Debug, Clone)]
69
- pub enum TraceExporter {
70
- /// Export traces to an OpenTelemetry Collector <https://opentelemetry.io/docs/collector/>.
71
- Otel(OtelCollectorOptions),
72
- }
73
-
74
- /// Control where metrics are exported
75
- #[derive(Debug, Clone)]
76
- pub enum MetricsExporter {
77
- /// Export metrics to an OpenTelemetry Collector <https://opentelemetry.io/docs/collector/>.
78
- Otel(OtelCollectorOptions),
79
- /// Expose metrics directly via an embedded http server bound to the provided address.
80
- Prometheus(SocketAddr),
81
- }
82
-
83
- /// Control where logs go
84
- #[derive(Debug, Clone)]
85
- pub enum Logger {
86
- /// Log directly to console.
87
- Console {
88
- /// An [EnvFilter](https://docs.rs/tracing-subscriber/latest/tracing_subscriber/struct.EnvFilter.html) filter string.
89
- filter: String,
90
- },
91
- /// Forward logs to Lang - collectable with `fetch_global_buffered_logs`.
92
- Forward {
93
- /// An [EnvFilter](https://docs.rs/tracing-subscriber/latest/tracing_subscriber/struct.EnvFilter.html) filter string.
94
- filter: String,
95
- },
96
- }
97
-
98
- /// Types of aggregation temporality for metric export.
99
- /// See: <https://github.com/open-telemetry/opentelemetry-specification/blob/ce50e4634efcba8da445cc23523243cb893905cb/specification/metrics/datamodel.md#temporality>
100
- #[derive(Debug, Clone, Copy)]
101
- pub enum MetricTemporality {
102
- /// Successive data points repeat the starting timestamp
103
- Cumulative,
104
- /// Successive data points advance the starting timestamp
105
- Delta,
106
- }
107
-
108
- impl Default for TelemetryOptions {
109
- fn default() -> Self {
110
- TelemetryOptionsBuilder::default().build().unwrap()
111
- }
112
- }
113
-
114
- /// A log line (which ultimately came from a tracing event) exported from Core->Lang
115
- #[derive(Debug)]
116
- pub struct CoreLog {
117
- /// The module within core this message originated from
118
- pub target: String,
119
- /// Log message
120
- pub message: String,
121
- /// Time log was generated (not when it was exported to lang)
122
- pub timestamp: SystemTime,
123
- /// Message level
124
- pub level: Level,
125
- /// Arbitrary k/v pairs (span k/vs are collapsed with event k/vs here). We could change this
126
- /// to include them in `span_contexts` instead, but there's probably not much value for log
127
- /// forwarding.
128
- pub fields: HashMap<String, serde_json::Value>,
129
- /// A list of the outermost to the innermost span names
130
- pub span_contexts: Vec<String>,
131
- }
132
-
133
- impl CoreLog {
134
- /// Return timestamp as ms since epoch
135
- pub fn millis_since_epoch(&self) -> u128 {
136
- self.timestamp
137
- .duration_since(UNIX_EPOCH)
138
- .unwrap_or(Duration::ZERO)
139
- .as_millis()
140
- }
141
- }
@@ -1,161 +0,0 @@
1
- use std::time::Duration;
2
- use tokio::sync::mpsc::UnboundedSender;
3
-
4
- /// Defines per-worker configuration options
5
- #[derive(Debug, Clone, derive_builder::Builder, serde::Serialize, serde::Deserialize)]
6
- #[builder(setter(into), build_fn(validate = "Self::validate"))]
7
- #[non_exhaustive]
8
- pub struct WorkerConfig {
9
- /// The Temporal service namespace this worker is bound to
10
- pub namespace: String,
11
- /// What task queue will this worker poll from? This task queue name will be used for both
12
- /// workflow and activity polling.
13
- pub task_queue: String,
14
- /// A string that should be unique to the set of code this worker uses. IE: All the workflow,
15
- /// activity, interceptor, and data converter code.
16
- pub worker_build_id: String,
17
- /// A human-readable string that can identify this worker. Using something like sdk version
18
- /// and host name is a good default. If set, overrides the identity set (if any) on the client
19
- /// used by this worker.
20
- #[builder(default)]
21
- pub client_identity_override: Option<String>,
22
- /// If set nonzero, workflows will be cached and sticky task queues will be used, meaning that
23
- /// history updates are applied incrementally to suspended instances of workflow execution.
24
- /// Workflows are evicted according to a least-recently-used policy one the cache maximum is
25
- /// reached. Workflows may also be explicitly evicted at any time, or as a result of errors
26
- /// or failures.
27
- #[builder(default = "0")]
28
- pub max_cached_workflows: usize,
29
- /// The maximum allowed number of workflow tasks that will ever be given to this worker at one
30
- /// time. Note that one workflow task may require multiple activations - so the WFT counts as
31
- /// "outstanding" until all activations it requires have been completed.
32
- ///
33
- /// Cannot be larger than `max_cached_workflows`.
34
- #[builder(default = "100")]
35
- pub max_outstanding_workflow_tasks: usize,
36
- /// The maximum number of activity tasks that will ever be given to this worker concurrently
37
- #[builder(default = "100")]
38
- pub max_outstanding_activities: usize,
39
- /// The maximum number of local activity tasks that will ever be given to this worker
40
- /// concurrently
41
- #[builder(default = "100")]
42
- pub max_outstanding_local_activities: usize,
43
- /// Maximum number of concurrent poll workflow task requests we will perform at a time on this
44
- /// worker's task queue. See also [WorkerConfig::nonsticky_to_sticky_poll_ratio]. Must be at
45
- /// least 1.
46
- #[builder(default = "5")]
47
- pub max_concurrent_wft_polls: usize,
48
- /// [WorkerConfig::max_concurrent_wft_polls] * this number = the number of max pollers that will
49
- /// be allowed for the nonsticky queue when sticky tasks are enabled. If both defaults are used,
50
- /// the sticky queue will allow 4 max pollers while the nonsticky queue will allow one. The
51
- /// minimum for either poller is 1, so if `max_concurrent_wft_polls` is 1 and sticky queues are
52
- /// enabled, there will be 2 concurrent polls.
53
- #[builder(default = "0.2")]
54
- pub nonsticky_to_sticky_poll_ratio: f32,
55
- /// Maximum number of concurrent poll activity task requests we will perform at a time on this
56
- /// worker's task queue
57
- #[builder(default = "5")]
58
- pub max_concurrent_at_polls: usize,
59
- /// If set to true this worker will only handle workflow tasks and local activities, it will not
60
- /// poll for activity tasks.
61
- #[builder(default = "false")]
62
- pub no_remote_activities: bool,
63
- /// How long a workflow task is allowed to sit on the sticky queue before it is timed out
64
- /// and moved to the non-sticky queue where it may be picked up by any worker.
65
- #[builder(default = "Duration::from_secs(10)")]
66
- pub sticky_queue_schedule_to_start_timeout: Duration,
67
-
68
- /// Longest interval for throttling activity heartbeats
69
- #[builder(default = "Duration::from_secs(60)")]
70
- pub max_heartbeat_throttle_interval: Duration,
71
-
72
- /// Default interval for throttling activity heartbeats in case
73
- /// `ActivityOptions.heartbeat_timeout` is unset.
74
- /// When the timeout *is* set in the `ActivityOptions`, throttling is set to
75
- /// `heartbeat_timeout * 0.8`.
76
- #[builder(default = "Duration::from_secs(30)")]
77
- pub default_heartbeat_throttle_interval: Duration,
78
-
79
- /// Sets the maximum number of activities per second the task queue will dispatch, controlled
80
- /// server-side. Note that this only takes effect upon an activity poll request. If multiple
81
- /// workers on the same queue have different values set, they will thrash with the last poller
82
- /// winning.
83
- #[builder(default)]
84
- pub max_task_queue_activities_per_second: Option<f64>,
85
-
86
- /// Limits the number of activities per second that this worker will process. The worker will
87
- /// not poll for new activities if by doing so it might receive and execute an activity which
88
- /// would cause it to exceed this limit. Negative, zero, or NaN values will cause building
89
- /// the options to fail.
90
- #[builder(default)]
91
- pub max_worker_activities_per_second: Option<f64>,
92
-
93
- /// # UNDER DEVELOPMENT
94
- /// If set to true this worker will opt-in to the whole-worker versioning feature.
95
- /// `worker_build_id` will be used as the version.
96
- /// todo: link to feature docs
97
- #[builder(default = "false")]
98
- pub use_worker_versioning: bool,
99
-
100
- /// If set false (default), shutdown will not finish until all pending evictions have been
101
- /// issued and replied to. If set true shutdown will be considered complete when the only
102
- /// remaining work is pending evictions.
103
- ///
104
- /// This flag is useful during tests to avoid needing to deal with lots of uninteresting
105
- /// evictions during shutdown. Alternatively, if a lang implementation finds it easy to clean
106
- /// up during shutdown, setting this true saves some back-and-forth.
107
- #[builder(default = "false")]
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
-
123
- impl WorkerConfig {
124
- pub fn max_nonsticky_polls(&self) -> usize {
125
- ((self.max_concurrent_wft_polls as f32 * self.nonsticky_to_sticky_poll_ratio) as usize)
126
- .max(1)
127
- }
128
- pub fn max_sticky_polls(&self) -> usize {
129
- self.max_concurrent_wft_polls
130
- .saturating_sub(self.max_nonsticky_polls())
131
- .max(1)
132
- }
133
- }
134
-
135
- impl WorkerConfigBuilder {
136
- fn validate(&self) -> Result<(), String> {
137
- if self.max_concurrent_wft_polls == Some(0) {
138
- return Err("`max_concurrent_wft_polls` must be at least 1".to_owned());
139
- }
140
- if self.max_concurrent_at_polls == Some(0) {
141
- return Err("`max_concurrent_at_polls` must be at least 1".to_owned());
142
- }
143
- if self.max_cached_workflows > Some(0)
144
- && self.max_outstanding_workflow_tasks > self.max_cached_workflows
145
- {
146
- return Err(
147
- "Maximum concurrent workflow tasks cannot exceed the maximum number of cached \
148
- workflows"
149
- .to_owned(),
150
- );
151
- }
152
- if let Some(Some(ref x)) = self.max_worker_activities_per_second {
153
- if !x.is_normal() || x.is_sign_negative() {
154
- return Err(
155
- "`max_worker_activities_per_second` must be positive and nonzero".to_owned(),
156
- );
157
- }
158
- }
159
- Ok(())
160
- }
161
- }