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,659 +0,0 @@
1
- //! The patch machine can be difficult to follow. Refer to below table for behavior. The
2
- //! deprecated calls simply say "allowed" because if they returned a value, it's always true. Old
3
- //! code cannot exist in workflows which use the deprecated call.
4
- //!
5
- //! | History Has | Workflow Has | Outcome |
6
- //! |------------------------------|-----------------|------------------------------------------------------------------------------------|
7
- //! | not replaying | no patched | Nothing interesting. Versioning not involved. |
8
- //! | marker for change | no patched | No matching command / workflow does not support this version |
9
- //! | deprecated marker for change | no patched | Marker ignored, workflow continues as if it didn't exist |
10
- //! | replaying, no marker | no patched | Nothing interesting. Versioning not involved. |
11
- //! | not replaying | patched | Marker command sent to server and recorded. Call returns true |
12
- //! | marker for change | patched | Call returns true upon replay |
13
- //! | deprecated marker for change | patched | Call returns true upon replay |
14
- //! | replaying, no marker | patched | Call returns false upon replay |
15
- //! | not replaying | deprecate_patch | Marker command sent to server and recorded with deprecated flag. Call allowed |
16
- //! | marker for change | deprecate_patch | Call allowed |
17
- //! | deprecated marker for change | deprecate_patch | Call allowed |
18
- //! | replaying, no marker | deprecate_patch | Call allowed |
19
-
20
- use super::{
21
- workflow_machines::MachineResponse, Cancellable, EventInfo, NewMachineWithCommand,
22
- OnEventWrapper, WFMachinesAdapter, WFMachinesError,
23
- };
24
- use crate::{protosext::HistoryEventExt, worker::workflow::machines::HistEventData};
25
- use rustfsm::{fsm, TransitionResult};
26
- use std::convert::TryFrom;
27
- use temporal_sdk_core_protos::{
28
- constants::PATCH_MARKER_NAME,
29
- coresdk::common::build_has_change_marker_details,
30
- temporal::api::{
31
- command::v1::{Command, RecordMarkerCommandAttributes},
32
- enums::v1::CommandType,
33
- history::v1::HistoryEvent,
34
- },
35
- };
36
-
37
- fsm! {
38
- pub(super) name PatchMachine;
39
- command PatchCommand;
40
- error WFMachinesError;
41
- shared_state SharedState;
42
-
43
- // Machine is created in either executing or replaying, and then immediately scheduled and
44
- // transitions to the command created state (creating the command in the process)
45
- Executing --(Schedule, on_schedule) --> MarkerCommandCreated;
46
- Replaying --(Schedule, on_schedule) --> MarkerCommandCreatedReplaying;
47
-
48
- // Pretty much nothing happens here - once we issue the command it is the responsibility of
49
- // machinery above us to notify lang SDK about the change. This is in order to allow the
50
- // change call to be sync and not have to wait for the command to resolve.
51
- MarkerCommandCreated --(CommandRecordMarker, on_command_record_marker) --> Notified;
52
- MarkerCommandCreatedReplaying --(CommandRecordMarker) --> Notified;
53
-
54
- // Once we've played back the marker recorded event, all we need to do is double-check that
55
- // it matched what we expected
56
- Notified --(MarkerRecorded(String), shared on_marker_recorded) --> MarkerCommandRecorded;
57
- }
58
-
59
- #[derive(Clone)]
60
- pub(super) struct SharedState {
61
- patch_id: String,
62
- }
63
-
64
- #[derive(Debug, derive_more::Display)]
65
- pub(super) enum PatchCommand {}
66
-
67
- /// Patch machines are created when the user invokes `has_change` (or whatever it may be named
68
- /// in that lang).
69
- ///
70
- /// `patch_id`: identifier of a particular change. All calls to get_version that share a change id
71
- /// are guaranteed to return the same value.
72
- /// `replaying_when_invoked`: If the workflow is replaying when this invocation occurs, this needs
73
- /// to be set to true.
74
- pub(super) fn has_change(
75
- patch_id: String,
76
- replaying_when_invoked: bool,
77
- deprecated: bool,
78
- ) -> NewMachineWithCommand {
79
- let (machine, command) =
80
- PatchMachine::new_scheduled(SharedState { patch_id }, replaying_when_invoked, deprecated);
81
- NewMachineWithCommand {
82
- command,
83
- machine: machine.into(),
84
- }
85
- }
86
-
87
- impl PatchMachine {
88
- fn new_scheduled(
89
- state: SharedState,
90
- replaying_when_invoked: bool,
91
- deprecated: bool,
92
- ) -> (Self, Command) {
93
- let initial_state = if replaying_when_invoked {
94
- Replaying {}.into()
95
- } else {
96
- Executing {}.into()
97
- };
98
- let cmd = Command {
99
- command_type: CommandType::RecordMarker as i32,
100
- attributes: Some(
101
- RecordMarkerCommandAttributes {
102
- marker_name: PATCH_MARKER_NAME.to_string(),
103
- details: build_has_change_marker_details(&state.patch_id, deprecated),
104
- header: None,
105
- failure: None,
106
- }
107
- .into(),
108
- ),
109
- };
110
- let mut machine = Self {
111
- state: initial_state,
112
- shared_state: state,
113
- };
114
- OnEventWrapper::on_event_mut(&mut machine, PatchMachineEvents::Schedule)
115
- .expect("Patch machine scheduling doesn't fail");
116
-
117
- (machine, cmd)
118
- }
119
- }
120
-
121
- #[derive(Default, Clone)]
122
- pub(super) struct Executing {}
123
-
124
- impl Executing {
125
- pub(super) fn on_schedule(self) -> PatchMachineTransition<MarkerCommandCreated> {
126
- TransitionResult::default()
127
- }
128
- }
129
-
130
- #[derive(Default, Clone)]
131
- pub(super) struct MarkerCommandCreated {}
132
-
133
- impl MarkerCommandCreated {
134
- pub(super) fn on_command_record_marker(self) -> PatchMachineTransition<Notified> {
135
- TransitionResult::commands(vec![])
136
- }
137
- }
138
-
139
- #[derive(Default, Clone)]
140
- pub(super) struct MarkerCommandCreatedReplaying {}
141
-
142
- #[derive(Default, Clone)]
143
- pub(super) struct MarkerCommandRecorded {}
144
-
145
- #[derive(Default, Clone)]
146
- pub(super) struct Replaying {}
147
-
148
- impl Replaying {
149
- pub(super) fn on_schedule(self) -> PatchMachineTransition<MarkerCommandCreatedReplaying> {
150
- TransitionResult::default()
151
- }
152
- }
153
-
154
- #[derive(Default, Clone)]
155
- pub(super) struct Notified {}
156
- impl From<MarkerCommandCreatedReplaying> for Notified {
157
- fn from(_: MarkerCommandCreatedReplaying) -> Self {
158
- Self::default()
159
- }
160
- }
161
- impl Notified {
162
- pub(super) fn on_marker_recorded(
163
- self,
164
- dat: SharedState,
165
- id: String,
166
- ) -> PatchMachineTransition<MarkerCommandRecorded> {
167
- if id != dat.patch_id {
168
- return TransitionResult::Err(WFMachinesError::Nondeterminism(format!(
169
- "Change id {} does not match expected id {}",
170
- id, dat.patch_id
171
- )));
172
- }
173
- TransitionResult::default()
174
- }
175
- }
176
-
177
- impl WFMachinesAdapter for PatchMachine {
178
- fn adapt_response(
179
- &self,
180
- _my_command: Self::Command,
181
- _event_info: Option<EventInfo>,
182
- ) -> Result<Vec<MachineResponse>, WFMachinesError> {
183
- panic!("Patch machine does not produce commands")
184
- }
185
-
186
- fn matches_event(&self, event: &HistoryEvent) -> bool {
187
- event.get_patch_marker_details().is_some()
188
- }
189
- }
190
-
191
- impl Cancellable for PatchMachine {}
192
-
193
- impl TryFrom<CommandType> for PatchMachineEvents {
194
- type Error = ();
195
-
196
- fn try_from(c: CommandType) -> Result<Self, Self::Error> {
197
- Ok(match c {
198
- CommandType::RecordMarker => Self::CommandRecordMarker,
199
- _ => return Err(()),
200
- })
201
- }
202
- }
203
-
204
- impl TryFrom<HistEventData> for PatchMachineEvents {
205
- type Error = WFMachinesError;
206
-
207
- fn try_from(e: HistEventData) -> Result<Self, Self::Error> {
208
- let e = e.event;
209
- match e.get_patch_marker_details() {
210
- Some((id, _)) => Ok(Self::MarkerRecorded(id)),
211
- _ => Err(WFMachinesError::Nondeterminism(format!(
212
- "Change machine cannot handle this event: {e}"
213
- ))),
214
- }
215
- }
216
- }
217
-
218
- #[cfg(test)]
219
- mod tests {
220
- use crate::{
221
- replay::TestHistoryBuilder,
222
- worker::workflow::{machines::WFMachinesError, ManagedWFFunc},
223
- };
224
- use rstest::rstest;
225
- use std::time::Duration;
226
- use temporal_sdk::{ActivityOptions, WfContext, WorkflowFunction};
227
- use temporal_sdk_core_protos::{
228
- constants::PATCH_MARKER_NAME,
229
- coresdk::{
230
- common::decode_change_marker_details,
231
- workflow_activation::{workflow_activation_job, NotifyHasPatch, WorkflowActivationJob},
232
- },
233
- temporal::api::{
234
- command::v1::{
235
- command::Attributes, RecordMarkerCommandAttributes,
236
- ScheduleActivityTaskCommandAttributes,
237
- },
238
- common::v1::ActivityType,
239
- enums::v1::{CommandType, EventType},
240
- history::v1::{
241
- ActivityTaskCompletedEventAttributes, ActivityTaskScheduledEventAttributes,
242
- ActivityTaskStartedEventAttributes, TimerFiredEventAttributes,
243
- },
244
- },
245
- };
246
-
247
- const MY_PATCH_ID: &str = "test_patch_id";
248
- #[derive(Eq, PartialEq, Copy, Clone, Debug)]
249
- enum MarkerType {
250
- Deprecated,
251
- NotDeprecated,
252
- NoMarker,
253
- }
254
-
255
- const ONE_SECOND: Duration = Duration::from_secs(1);
256
-
257
- /// EVENT_TYPE_WORKFLOW_EXECUTION_STARTED
258
- /// EVENT_TYPE_WORKFLOW_TASK_SCHEDULED
259
- /// EVENT_TYPE_WORKFLOW_TASK_STARTED
260
- /// EVENT_TYPE_WORKFLOW_TASK_COMPLETED
261
- /// EVENT_TYPE_MARKER_RECORDED (depending on marker_type)
262
- /// EVENT_TYPE_ACTIVITY_TASK_SCHEDULED
263
- /// EVENT_TYPE_ACTIVITY_TASK_STARTED
264
- /// EVENT_TYPE_ACTIVITY_TASK_COMPLETED
265
- /// EVENT_TYPE_WORKFLOW_TASK_SCHEDULED
266
- /// EVENT_TYPE_WORKFLOW_TASK_STARTED
267
- /// EVENT_TYPE_WORKFLOW_TASK_COMPLETED
268
- /// EVENT_TYPE_WORKFLOW_EXECUTION_COMPLETED
269
- fn patch_marker_single_activity(
270
- marker_type: MarkerType,
271
- version: usize,
272
- replay: bool,
273
- ) -> TestHistoryBuilder {
274
- let mut t = TestHistoryBuilder::default();
275
- t.add_by_type(EventType::WorkflowExecutionStarted);
276
- t.add_full_wf_task();
277
- match marker_type {
278
- MarkerType::Deprecated => t.add_has_change_marker(MY_PATCH_ID, true),
279
- MarkerType::NotDeprecated => t.add_has_change_marker(MY_PATCH_ID, false),
280
- MarkerType::NoMarker => {}
281
- };
282
-
283
- let activity_id = if replay {
284
- match (marker_type, version) {
285
- (_, 1) => "no_change",
286
- (MarkerType::NotDeprecated, 2) => "had_change",
287
- (MarkerType::Deprecated, 2) => "had_change",
288
- (MarkerType::NoMarker, 2) => "no_change",
289
- (_, 3) => "had_change",
290
- (_, 4) => "had_change",
291
- v => panic!("Nonsense marker / version combo {v:?}"),
292
- }
293
- } else {
294
- // If the workflow isn't replaying (we're creating history here for a workflow which
295
- // wasn't replaying at the time of scheduling the activity, and has done that, and now
296
- // we're feeding back the history it would have produced) then it always has the change,
297
- // except in v1.
298
- if version > 1 {
299
- "had_change"
300
- } else {
301
- "no_change"
302
- }
303
- };
304
-
305
- let scheduled_event_id = t.add(ActivityTaskScheduledEventAttributes {
306
- activity_id: activity_id.to_string(),
307
- ..Default::default()
308
- });
309
- let started_event_id = t.add(ActivityTaskStartedEventAttributes {
310
- scheduled_event_id,
311
- ..Default::default()
312
- });
313
- t.add(ActivityTaskCompletedEventAttributes {
314
- scheduled_event_id,
315
- started_event_id,
316
- ..Default::default()
317
- });
318
- t.add_full_wf_task();
319
- t.add_workflow_execution_completed();
320
- t
321
- }
322
-
323
- async fn v1(ctx: &mut WfContext) {
324
- ctx.activity(ActivityOptions {
325
- activity_id: Some("no_change".to_owned()),
326
- ..Default::default()
327
- })
328
- .await;
329
- }
330
-
331
- async fn v2(ctx: &mut WfContext) -> bool {
332
- if ctx.patched(MY_PATCH_ID) {
333
- ctx.activity(ActivityOptions {
334
- activity_id: Some("had_change".to_owned()),
335
- ..Default::default()
336
- })
337
- .await;
338
- true
339
- } else {
340
- ctx.activity(ActivityOptions {
341
- activity_id: Some("no_change".to_owned()),
342
- ..Default::default()
343
- })
344
- .await;
345
- false
346
- }
347
- }
348
-
349
- async fn v3(ctx: &mut WfContext) {
350
- ctx.deprecate_patch(MY_PATCH_ID);
351
- ctx.activity(ActivityOptions {
352
- activity_id: Some("had_change".to_owned()),
353
- ..Default::default()
354
- })
355
- .await;
356
- }
357
-
358
- async fn v4(ctx: &mut WfContext) {
359
- ctx.activity(ActivityOptions {
360
- activity_id: Some("had_change".to_owned()),
361
- ..Default::default()
362
- })
363
- .await;
364
- }
365
-
366
- fn patch_setup(
367
- replaying: bool,
368
- marker_type: MarkerType,
369
- workflow_version: usize,
370
- ) -> ManagedWFFunc {
371
- let wfn = WorkflowFunction::new(move |mut ctx: WfContext| async move {
372
- match workflow_version {
373
- 1 => {
374
- v1(&mut ctx).await;
375
- }
376
- 2 => {
377
- v2(&mut ctx).await;
378
- }
379
- 3 => {
380
- v3(&mut ctx).await;
381
- }
382
- 4 => {
383
- v4(&mut ctx).await;
384
- }
385
- _ => panic!("Invalid workflow version for test setup"),
386
- }
387
- Ok(().into())
388
- });
389
-
390
- let t = patch_marker_single_activity(marker_type, workflow_version, replaying);
391
- let histinfo = if replaying {
392
- t.get_full_history_info()
393
- } else {
394
- t.get_history_info(1)
395
- };
396
- ManagedWFFunc::new_from_update(histinfo.unwrap().into(), wfn, vec![])
397
- }
398
-
399
- #[rstest]
400
- #[case::v1_breaks_on_normal_marker(false, MarkerType::NotDeprecated, 1)]
401
- #[case::v1_accepts_dep_marker(false, MarkerType::Deprecated, 1)]
402
- #[case::v1_replay_breaks_on_normal_marker(true, MarkerType::NotDeprecated, 1)]
403
- #[case::v1_replay_accepts_dep_marker(true, MarkerType::Deprecated, 1)]
404
- #[case::v4_breaks_on_normal_marker(false, MarkerType::NotDeprecated, 4)]
405
- #[case::v4_accepts_dep_marker(false, MarkerType::Deprecated, 4)]
406
- #[case::v4_replay_breaks_on_normal_marker(true, MarkerType::NotDeprecated, 4)]
407
- #[case::v4_replay_accepts_dep_marker(true, MarkerType::Deprecated, 4)]
408
- #[tokio::test]
409
- async fn v1_and_v4_changes(
410
- #[case] replaying: bool,
411
- #[case] marker_type: MarkerType,
412
- #[case] wf_version: usize,
413
- ) {
414
- let mut wfm = patch_setup(replaying, marker_type, wf_version);
415
- // Start workflow activation
416
- wfm.get_next_activation().await.unwrap();
417
- let commands = wfm.get_server_commands().commands;
418
- assert_eq!(commands.len(), 1);
419
- assert_eq!(
420
- commands[0].command_type,
421
- CommandType::ScheduleActivityTask as i32
422
- );
423
- let act = if replaying {
424
- wfm.get_next_activation().await
425
- } else {
426
- // Feed more history
427
- wfm.new_history(
428
- patch_marker_single_activity(marker_type, wf_version, replaying)
429
- .get_full_history_info()
430
- .unwrap()
431
- .into(),
432
- )
433
- .await
434
- };
435
-
436
- if marker_type == MarkerType::Deprecated {
437
- let act = act.unwrap();
438
- // Activity is resolved
439
- assert_matches!(
440
- act.jobs.as_slice(),
441
- [WorkflowActivationJob {
442
- variant: Some(workflow_activation_job::Variant::ResolveActivity(_))
443
- }]
444
- );
445
- } else {
446
- // should explode b/c non-dep marker is present
447
- assert_matches!(act.unwrap_err(), WFMachinesError::Nondeterminism(_));
448
- }
449
-
450
- wfm.shutdown().await.unwrap();
451
- }
452
-
453
- #[rstest]
454
- #[case::v2_no_marker_old_path(false, MarkerType::NoMarker, 2)]
455
- #[case::v2_marker_new_path(false, MarkerType::NotDeprecated, 2)]
456
- #[case::v2_dep_marker_new_path(false, MarkerType::Deprecated, 2)]
457
- #[case::v2_replay_no_marker_old_path(true, MarkerType::NoMarker, 2)]
458
- #[case::v2_replay_marker_new_path(true, MarkerType::NotDeprecated, 2)]
459
- #[case::v2_replay_dep_marker_new_path(true, MarkerType::Deprecated, 2)]
460
- #[case::v3_no_marker_old_path(false, MarkerType::NoMarker, 3)]
461
- #[case::v3_marker_new_path(false, MarkerType::NotDeprecated, 3)]
462
- #[case::v3_dep_marker_new_path(false, MarkerType::Deprecated, 3)]
463
- #[case::v3_replay_no_marker_old_path(true, MarkerType::NoMarker, 3)]
464
- #[case::v3_replay_marker_new_path(true, MarkerType::NotDeprecated, 3)]
465
- #[case::v3_replay_dep_marker_new_path(true, MarkerType::Deprecated, 3)]
466
- #[tokio::test]
467
- async fn v2_and_v3_changes(
468
- #[case] replaying: bool,
469
- #[case] marker_type: MarkerType,
470
- #[case] wf_version: usize,
471
- ) {
472
- let mut wfm = patch_setup(replaying, marker_type, wf_version);
473
- let act = wfm.get_next_activation().await.unwrap();
474
- // replaying cases should immediately get a resolve change activation when marker is present
475
- if replaying && marker_type != MarkerType::NoMarker {
476
- assert_matches!(
477
- &act.jobs[1],
478
- WorkflowActivationJob {
479
- variant: Some(workflow_activation_job::Variant::NotifyHasPatch(
480
- NotifyHasPatch {
481
- patch_id,
482
- }
483
- ))
484
- } => patch_id == MY_PATCH_ID
485
- );
486
- } else {
487
- assert_eq!(act.jobs.len(), 1);
488
- }
489
- let commands = wfm.get_server_commands().commands;
490
- assert_eq!(commands.len(), 2);
491
- let dep_flag_expected = wf_version != 2;
492
- assert_matches!(
493
- commands[0].attributes.as_ref().unwrap(),
494
- Attributes::RecordMarkerCommandAttributes(
495
- RecordMarkerCommandAttributes { marker_name, details,.. })
496
-
497
- if marker_name == PATCH_MARKER_NAME
498
- && decode_change_marker_details(details).unwrap().1 == dep_flag_expected
499
- );
500
- // The only time the "old" timer should fire is in v2, replaying, without a marker.
501
- let expected_activity_id =
502
- if replaying && marker_type == MarkerType::NoMarker && wf_version == 2 {
503
- "no_change"
504
- } else {
505
- "had_change"
506
- };
507
- assert_matches!(
508
- commands[1].attributes.as_ref().unwrap(),
509
- Attributes::ScheduleActivityTaskCommandAttributes(
510
- ScheduleActivityTaskCommandAttributes { activity_id, .. }
511
- )
512
- if activity_id == expected_activity_id
513
- );
514
-
515
- let act = if replaying {
516
- wfm.get_next_activation().await
517
- } else {
518
- // Feed more history. Since we are *not* replaying, we *always* "have" the change
519
- // and the history should have the has-change timer. v3 of course always has the change
520
- // regardless.
521
- wfm.new_history(
522
- patch_marker_single_activity(marker_type, wf_version, replaying)
523
- .get_full_history_info()
524
- .unwrap()
525
- .into(),
526
- )
527
- .await
528
- };
529
-
530
- let act = act.unwrap();
531
- // Activity is resolved
532
- assert_matches!(
533
- act.jobs.as_slice(),
534
- [WorkflowActivationJob {
535
- variant: Some(workflow_activation_job::Variant::ResolveActivity(_))
536
- }]
537
- );
538
-
539
- wfm.shutdown().await.unwrap();
540
- }
541
-
542
- #[rstest]
543
- #[case::has_change_replay(true, true)]
544
- #[case::no_change_replay(false, true)]
545
- #[case::has_change_inc(true, false)]
546
- // The false-false case doesn't make sense, as the incremental cases act as if working against
547
- // a sticky queue, and it'd be impossible for a worker with the call to get an incremental
548
- // history that then suddenly doesn't have the marker.
549
- #[tokio::test]
550
- async fn same_change_multiple_spots(#[case] have_marker_in_hist: bool, #[case] replay: bool) {
551
- let wfn = WorkflowFunction::new(move |ctx: WfContext| async move {
552
- if ctx.patched(MY_PATCH_ID) {
553
- ctx.activity(ActivityOptions::default()).await;
554
- } else {
555
- ctx.timer(ONE_SECOND).await;
556
- }
557
- ctx.timer(ONE_SECOND).await;
558
- if ctx.patched(MY_PATCH_ID) {
559
- ctx.activity(ActivityOptions::default()).await;
560
- } else {
561
- ctx.timer(ONE_SECOND).await;
562
- }
563
- Ok(().into())
564
- });
565
-
566
- let mut t = TestHistoryBuilder::default();
567
- t.add_by_type(EventType::WorkflowExecutionStarted);
568
- t.add_full_wf_task();
569
- if have_marker_in_hist {
570
- t.add_has_change_marker(MY_PATCH_ID, false);
571
- let scheduled_event_id = t.add(ActivityTaskScheduledEventAttributes {
572
- activity_id: "1".to_owned(),
573
- activity_type: Some(ActivityType {
574
- name: "".to_string(),
575
- }),
576
- ..Default::default()
577
- });
578
- let started_event_id = t.add(ActivityTaskStartedEventAttributes {
579
- scheduled_event_id,
580
- ..Default::default()
581
- });
582
- t.add(ActivityTaskCompletedEventAttributes {
583
- scheduled_event_id,
584
- started_event_id,
585
- ..Default::default()
586
- });
587
- t.add_full_wf_task();
588
- let timer_started_event_id = t.add_by_type(EventType::TimerStarted);
589
- t.add(TimerFiredEventAttributes {
590
- started_event_id: timer_started_event_id,
591
- timer_id: "1".to_owned(),
592
- });
593
- } else {
594
- let started_event_id = t.add_by_type(EventType::TimerStarted);
595
- t.add(TimerFiredEventAttributes {
596
- started_event_id,
597
- timer_id: "1".to_owned(),
598
- });
599
- t.add_full_wf_task();
600
- let timer_started_event_id = t.add_by_type(EventType::TimerStarted);
601
- t.add(TimerFiredEventAttributes {
602
- started_event_id: timer_started_event_id,
603
- timer_id: "2".to_owned(),
604
- });
605
- }
606
- t.add_full_wf_task();
607
-
608
- if have_marker_in_hist {
609
- let scheduled_event_id = t.add(ActivityTaskScheduledEventAttributes {
610
- activity_id: "2".to_string(),
611
- activity_type: Some(ActivityType {
612
- name: "".to_string(),
613
- }),
614
- ..Default::default()
615
- });
616
- let started_event_id = t.add(ActivityTaskStartedEventAttributes {
617
- scheduled_event_id,
618
- ..Default::default()
619
- });
620
- t.add(ActivityTaskCompletedEventAttributes {
621
- scheduled_event_id,
622
- started_event_id,
623
- ..Default::default()
624
- });
625
- } else {
626
- let started_event_id = t.add_by_type(EventType::TimerStarted);
627
- t.add(TimerFiredEventAttributes {
628
- started_event_id,
629
- timer_id: "3".to_owned(),
630
- });
631
- }
632
- t.add_full_wf_task();
633
- t.add_workflow_execution_completed();
634
-
635
- let mut wfm = if replay {
636
- let mut wfm = ManagedWFFunc::new_from_update(
637
- t.get_full_history_info().unwrap().into(),
638
- wfn,
639
- vec![],
640
- );
641
- // Errors would appear as nondeterminism problems
642
- wfm.process_all_activations().await.unwrap();
643
- wfm
644
- } else {
645
- let mut wfm =
646
- ManagedWFFunc::new_from_update(t.get_history_info(1).unwrap().into(), wfn, vec![]);
647
- wfm.process_all_activations().await.unwrap();
648
- for i in 2..=4 {
649
- wfm.new_history(t.get_history_info(i).unwrap().into())
650
- .await
651
- .unwrap();
652
- wfm.process_all_activations().await.unwrap();
653
- }
654
- wfm
655
- };
656
-
657
- wfm.shutdown().await.unwrap();
658
- }
659
- }