temporalio 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (310) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +180 -7
  3. data/bridge/Cargo.lock +208 -76
  4. data/bridge/Cargo.toml +5 -2
  5. data/bridge/sdk-core/Cargo.toml +1 -1
  6. data/bridge/sdk-core/README.md +20 -10
  7. data/bridge/sdk-core/client/Cargo.toml +1 -1
  8. data/bridge/sdk-core/client/src/lib.rs +227 -59
  9. data/bridge/sdk-core/client/src/metrics.rs +17 -8
  10. data/bridge/sdk-core/client/src/raw.rs +13 -12
  11. data/bridge/sdk-core/client/src/retry.rs +132 -43
  12. data/bridge/sdk-core/core/Cargo.toml +28 -15
  13. data/bridge/sdk-core/core/benches/workflow_replay.rs +13 -10
  14. data/bridge/sdk-core/core/src/abstractions.rs +225 -36
  15. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +217 -79
  16. data/bridge/sdk-core/core/src/core_tests/determinism.rs +165 -2
  17. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +565 -34
  18. data/bridge/sdk-core/core/src/core_tests/queries.rs +247 -90
  19. data/bridge/sdk-core/core/src/core_tests/workers.rs +3 -5
  20. data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +1 -1
  21. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +430 -67
  22. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +106 -12
  23. data/bridge/sdk-core/core/src/internal_flags.rs +136 -0
  24. data/bridge/sdk-core/core/src/lib.rs +148 -34
  25. data/bridge/sdk-core/core/src/protosext/mod.rs +1 -1
  26. data/bridge/sdk-core/core/src/replay/mod.rs +185 -41
  27. data/bridge/sdk-core/core/src/telemetry/log_export.rs +190 -0
  28. data/bridge/sdk-core/core/src/telemetry/metrics.rs +219 -140
  29. data/bridge/sdk-core/core/src/telemetry/mod.rs +326 -315
  30. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +20 -14
  31. data/bridge/sdk-core/core/src/test_help/mod.rs +85 -21
  32. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +112 -156
  33. data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +89 -0
  34. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +364 -128
  35. data/bridge/sdk-core/core/src/worker/activities.rs +263 -170
  36. data/bridge/sdk-core/core/src/worker/client/mocks.rs +23 -3
  37. data/bridge/sdk-core/core/src/worker/client.rs +48 -6
  38. data/bridge/sdk-core/core/src/worker/mod.rs +186 -75
  39. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +1 -3
  40. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +13 -24
  41. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +879 -226
  42. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +101 -48
  43. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +8 -12
  44. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +6 -9
  45. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +90 -32
  46. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +6 -9
  47. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +7 -10
  48. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +6 -9
  49. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +160 -83
  50. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +36 -54
  51. data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +179 -0
  52. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +104 -157
  53. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +8 -12
  54. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +9 -13
  55. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +10 -4
  56. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +14 -11
  57. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +6 -17
  58. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +395 -299
  59. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +12 -20
  60. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +33 -18
  61. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +1032 -374
  62. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +525 -392
  63. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +40 -57
  64. data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +125 -0
  65. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +3 -6
  66. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +117 -0
  67. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +24 -0
  68. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +456 -681
  69. data/bridge/sdk-core/core-api/Cargo.toml +6 -4
  70. data/bridge/sdk-core/core-api/src/errors.rs +1 -34
  71. data/bridge/sdk-core/core-api/src/lib.rs +7 -45
  72. data/bridge/sdk-core/core-api/src/telemetry.rs +141 -0
  73. data/bridge/sdk-core/core-api/src/worker.rs +27 -1
  74. data/bridge/sdk-core/etc/deps.svg +115 -140
  75. data/bridge/sdk-core/etc/regen-depgraph.sh +5 -0
  76. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +18 -15
  77. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +1 -1
  78. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +8 -3
  79. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
  80. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-23_history.bin +0 -0
  81. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-85_history.bin +0 -0
  82. data/bridge/sdk-core/protos/api_upstream/buf.yaml +0 -3
  83. data/bridge/sdk-core/protos/api_upstream/build/go.mod +7 -0
  84. data/bridge/sdk-core/protos/api_upstream/build/go.sum +5 -0
  85. data/bridge/sdk-core/protos/api_upstream/{temporal/api/enums/v1/cluster.proto → build/tools.go} +7 -18
  86. data/bridge/sdk-core/protos/api_upstream/go.mod +6 -0
  87. data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +12 -9
  88. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +15 -26
  89. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +13 -2
  90. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +3 -2
  91. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +4 -9
  92. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +3 -2
  93. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +10 -8
  94. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +28 -2
  95. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +2 -2
  96. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +2 -2
  97. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +2 -2
  98. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +2 -2
  99. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +2 -2
  100. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +24 -19
  101. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +2 -2
  102. data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +2 -2
  103. data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +2 -2
  104. data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +2 -2
  105. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +62 -26
  106. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +4 -2
  107. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +24 -61
  108. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +2 -21
  109. data/bridge/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +57 -0
  110. data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +2 -2
  111. data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +2 -2
  112. data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +110 -31
  113. data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +63 -0
  114. data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +4 -4
  115. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +71 -6
  116. data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +2 -2
  117. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +3 -2
  118. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +111 -36
  119. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +19 -5
  120. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +1 -0
  121. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +1 -0
  122. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +1 -0
  123. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +1 -0
  124. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +1 -0
  125. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +1 -0
  126. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +9 -0
  127. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +9 -1
  128. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +6 -0
  129. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +2 -2
  130. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +2 -2
  131. data/bridge/sdk-core/sdk/Cargo.toml +4 -3
  132. data/bridge/sdk-core/sdk/src/interceptors.rs +36 -3
  133. data/bridge/sdk-core/sdk/src/lib.rs +94 -25
  134. data/bridge/sdk-core/sdk/src/workflow_context.rs +13 -2
  135. data/bridge/sdk-core/sdk/src/workflow_future.rs +10 -13
  136. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +5 -2
  137. data/bridge/sdk-core/sdk-core-protos/build.rs +36 -2
  138. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +164 -104
  139. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +27 -23
  140. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +252 -74
  141. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +12 -2
  142. data/bridge/sdk-core/test-utils/Cargo.toml +4 -1
  143. data/bridge/sdk-core/test-utils/src/canned_histories.rs +106 -296
  144. data/bridge/sdk-core/test-utils/src/histfetch.rs +1 -1
  145. data/bridge/sdk-core/test-utils/src/lib.rs +161 -50
  146. data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +50 -0
  147. data/bridge/sdk-core/test-utils/src/workflows.rs +29 -0
  148. data/bridge/sdk-core/tests/fuzzy_workflow.rs +130 -0
  149. data/bridge/sdk-core/tests/{load_tests.rs → heavy_tests.rs} +125 -51
  150. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +25 -3
  151. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +10 -5
  152. data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +239 -0
  153. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +4 -60
  154. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +5 -128
  155. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +83 -25
  156. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +93 -69
  157. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +1 -0
  158. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +6 -13
  159. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +1 -0
  160. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +6 -2
  161. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +3 -10
  162. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +151 -116
  163. data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +54 -0
  164. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +7 -28
  165. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +115 -24
  166. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +1 -0
  167. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +18 -14
  168. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +6 -20
  169. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +10 -21
  170. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +6 -4
  171. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +27 -18
  172. data/bridge/sdk-core/tests/main.rs +8 -16
  173. data/bridge/sdk-core/tests/runner.rs +75 -36
  174. data/bridge/sdk-core/tests/wf_input_replay.rs +32 -0
  175. data/bridge/src/connection.rs +117 -82
  176. data/bridge/src/lib.rs +356 -42
  177. data/bridge/src/runtime.rs +10 -3
  178. data/bridge/src/test_server.rs +153 -0
  179. data/bridge/src/worker.rs +133 -9
  180. data/lib/gen/temporal/api/batch/v1/message_pb.rb +8 -6
  181. data/lib/gen/temporal/api/command/v1/message_pb.rb +10 -16
  182. data/lib/gen/temporal/api/common/v1/message_pb.rb +5 -1
  183. data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +2 -1
  184. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +3 -3
  185. data/lib/gen/temporal/api/enums/v1/common_pb.rb +2 -1
  186. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +5 -4
  187. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +9 -1
  188. data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +1 -1
  189. data/lib/gen/temporal/api/enums/v1/query_pb.rb +1 -1
  190. data/lib/gen/temporal/api/enums/v1/reset_pb.rb +1 -1
  191. data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +1 -1
  192. data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +1 -1
  193. data/lib/gen/temporal/api/enums/v1/update_pb.rb +7 -10
  194. data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +1 -1
  195. data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +1 -1
  196. data/lib/gen/temporal/api/failure/v1/message_pb.rb +1 -1
  197. data/lib/gen/temporal/api/filter/v1/message_pb.rb +1 -1
  198. data/lib/gen/temporal/api/history/v1/message_pb.rb +34 -25
  199. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +2 -1
  200. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +14 -51
  201. data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +1 -1
  202. data/lib/gen/temporal/api/protocol/v1/message_pb.rb +30 -0
  203. data/lib/gen/temporal/api/query/v1/message_pb.rb +1 -1
  204. data/lib/gen/temporal/api/replication/v1/message_pb.rb +1 -1
  205. data/lib/gen/temporal/api/schedule/v1/message_pb.rb +22 -1
  206. data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +23 -0
  207. data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +2 -2
  208. data/lib/gen/temporal/api/testservice/v1/request_response_pb.rb +49 -0
  209. data/lib/gen/temporal/api/testservice/v1/service_pb.rb +21 -0
  210. data/lib/gen/temporal/api/update/v1/message_pb.rb +49 -3
  211. data/lib/gen/temporal/api/version/v1/message_pb.rb +1 -1
  212. data/lib/gen/temporal/api/workflow/v1/message_pb.rb +2 -1
  213. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +47 -20
  214. data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +1 -1
  215. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +13 -9
  216. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +10 -6
  217. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +13 -9
  218. data/lib/gen/temporal/sdk/core/common/common_pb.rb +7 -3
  219. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +9 -3
  220. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +7 -3
  221. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +28 -21
  222. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +32 -24
  223. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +12 -5
  224. data/lib/temporalio/activity/context.rb +102 -0
  225. data/lib/temporalio/activity/info.rb +67 -0
  226. data/lib/temporalio/activity.rb +85 -0
  227. data/lib/temporalio/bridge/connect_options.rb +15 -0
  228. data/lib/temporalio/bridge/error.rb +8 -0
  229. data/lib/temporalio/bridge/retry_config.rb +24 -0
  230. data/lib/temporalio/bridge/tls_options.rb +19 -0
  231. data/lib/temporalio/bridge.rb +14 -0
  232. data/lib/{temporal → temporalio}/client/implementation.rb +57 -56
  233. data/lib/{temporal → temporalio}/client/workflow_handle.rb +35 -35
  234. data/lib/{temporal → temporalio}/client.rb +19 -32
  235. data/lib/temporalio/connection/retry_config.rb +44 -0
  236. data/lib/temporalio/connection/service.rb +20 -0
  237. data/lib/temporalio/connection/test_service.rb +92 -0
  238. data/lib/temporalio/connection/tls_options.rb +51 -0
  239. data/lib/temporalio/connection/workflow_service.rb +731 -0
  240. data/lib/temporalio/connection.rb +86 -0
  241. data/lib/{temporal → temporalio}/data_converter.rb +76 -35
  242. data/lib/{temporal → temporalio}/error/failure.rb +6 -6
  243. data/lib/{temporal → temporalio}/error/workflow_failure.rb +4 -2
  244. data/lib/{temporal → temporalio}/errors.rb +19 -1
  245. data/lib/{temporal → temporalio}/failure_converter/base.rb +5 -5
  246. data/lib/{temporal → temporalio}/failure_converter/basic.rb +58 -52
  247. data/lib/temporalio/failure_converter.rb +7 -0
  248. data/lib/temporalio/interceptor/activity_inbound.rb +22 -0
  249. data/lib/temporalio/interceptor/activity_outbound.rb +24 -0
  250. data/lib/{temporal → temporalio}/interceptor/chain.rb +7 -6
  251. data/lib/{temporal → temporalio}/interceptor/client.rb +27 -2
  252. data/lib/temporalio/interceptor.rb +22 -0
  253. data/lib/{temporal → temporalio}/payload_codec/base.rb +5 -5
  254. data/lib/{temporal → temporalio}/payload_converter/base.rb +3 -3
  255. data/lib/{temporal → temporalio}/payload_converter/bytes.rb +4 -3
  256. data/lib/{temporal → temporalio}/payload_converter/composite.rb +7 -5
  257. data/lib/{temporal → temporalio}/payload_converter/encoding_base.rb +4 -4
  258. data/lib/{temporal → temporalio}/payload_converter/json.rb +4 -3
  259. data/lib/{temporal → temporalio}/payload_converter/nil.rb +4 -3
  260. data/lib/temporalio/payload_converter.rb +14 -0
  261. data/lib/{temporal → temporalio}/retry_policy.rb +17 -7
  262. data/lib/{temporal → temporalio}/retry_state.rb +1 -1
  263. data/lib/temporalio/runtime.rb +25 -0
  264. data/lib/temporalio/testing/time_skipping_handle.rb +32 -0
  265. data/lib/temporalio/testing/time_skipping_interceptor.rb +23 -0
  266. data/lib/temporalio/testing/workflow_environment.rb +112 -0
  267. data/lib/temporalio/testing.rb +175 -0
  268. data/lib/{temporal → temporalio}/timeout_type.rb +2 -2
  269. data/lib/temporalio/version.rb +3 -0
  270. data/lib/temporalio/worker/activity_runner.rb +114 -0
  271. data/lib/temporalio/worker/activity_worker.rb +164 -0
  272. data/lib/temporalio/worker/reactor.rb +46 -0
  273. data/lib/temporalio/worker/runner.rb +63 -0
  274. data/lib/temporalio/worker/sync_worker.rb +124 -0
  275. data/lib/temporalio/worker/thread_pool_executor.rb +51 -0
  276. data/lib/temporalio/worker.rb +204 -0
  277. data/lib/temporalio/workflow/async.rb +46 -0
  278. data/lib/{temporal → temporalio}/workflow/execution_info.rb +4 -4
  279. data/lib/{temporal → temporalio}/workflow/execution_status.rb +1 -1
  280. data/lib/temporalio/workflow/future.rb +138 -0
  281. data/lib/{temporal → temporalio}/workflow/id_reuse_policy.rb +6 -6
  282. data/lib/temporalio/workflow/info.rb +76 -0
  283. data/lib/{temporal → temporalio}/workflow/query_reject_condition.rb +5 -5
  284. data/lib/temporalio.rb +12 -3
  285. data/temporalio.gemspec +11 -6
  286. metadata +137 -64
  287. data/bridge/sdk-core/Cargo.lock +0 -2606
  288. data/bridge/sdk-core/bridge-ffi/Cargo.toml +0 -24
  289. data/bridge/sdk-core/bridge-ffi/LICENSE.txt +0 -23
  290. data/bridge/sdk-core/bridge-ffi/build.rs +0 -25
  291. data/bridge/sdk-core/bridge-ffi/include/sdk-core-bridge.h +0 -249
  292. data/bridge/sdk-core/bridge-ffi/src/lib.rs +0 -825
  293. data/bridge/sdk-core/bridge-ffi/src/wrappers.rs +0 -211
  294. data/bridge/sdk-core/core/src/log_export.rs +0 -62
  295. data/bridge/sdk-core/core/src/worker/workflow/machines/mutable_side_effect_state_machine.rs +0 -127
  296. data/bridge/sdk-core/core/src/worker/workflow/machines/side_effect_state_machine.rs +0 -71
  297. data/bridge/sdk-core/protos/api_upstream/temporal/api/cluster/v1/message.proto +0 -83
  298. data/bridge/sdk-core/protos/local/temporal/sdk/core/bridge/bridge.proto +0 -210
  299. data/bridge/sdk-core/sdk/src/conversions.rs +0 -8
  300. data/lib/bridge.so +0 -0
  301. data/lib/gen/temporal/api/cluster/v1/message_pb.rb +0 -67
  302. data/lib/gen/temporal/api/enums/v1/cluster_pb.rb +0 -26
  303. data/lib/gen/temporal/sdk/core/bridge/bridge_pb.rb +0 -222
  304. data/lib/temporal/bridge.rb +0 -14
  305. data/lib/temporal/connection.rb +0 -736
  306. data/lib/temporal/failure_converter.rb +0 -8
  307. data/lib/temporal/payload_converter.rb +0 -14
  308. data/lib/temporal/runtime.rb +0 -22
  309. data/lib/temporal/version.rb +0 -3
  310. data/lib/temporal.rb +0 -8
@@ -24,7 +24,7 @@ pub fn single_timer(timer_id: &str) -> TestHistoryBuilder {
24
24
  let mut t = TestHistoryBuilder::default();
25
25
  t.add_by_type(EventType::WorkflowExecutionStarted);
26
26
  t.add_full_wf_task();
27
- let timer_started_event_id = t.add_get_event_id(EventType::TimerStarted, None);
27
+ let timer_started_event_id = t.add_by_type(EventType::TimerStarted);
28
28
  t.add_timer_fired(timer_started_event_id, timer_id.to_string());
29
29
  t.add_workflow_task_scheduled_and_started();
30
30
  t
@@ -53,20 +53,19 @@ pub fn cancel_timer(wait_timer_id: &str, cancel_timer_id: &str) -> TestHistoryBu
53
53
  let mut t = TestHistoryBuilder::default();
54
54
  t.add_by_type(EventType::WorkflowExecutionStarted);
55
55
  t.add_full_wf_task();
56
- let cancel_timer_started_id = t.add_get_event_id(EventType::TimerStarted, None);
57
- let wait_timer_started_id = t.add_get_event_id(EventType::TimerStarted, None);
56
+ let cancel_timer_started_id = t.add_by_type(EventType::TimerStarted);
57
+ let wait_timer_started_id = t.add_by_type(EventType::TimerStarted);
58
58
  t.add_timer_fired(wait_timer_started_id, wait_timer_id.to_string());
59
59
  // 8
60
60
  t.add_full_wf_task();
61
61
  // 11
62
- t.add(
63
- EventType::TimerCanceled,
64
- history_event::Attributes::TimerCanceledEventAttributes(TimerCanceledEventAttributes {
62
+ t.add(history_event::Attributes::TimerCanceledEventAttributes(
63
+ TimerCanceledEventAttributes {
65
64
  started_event_id: cancel_timer_started_id,
66
65
  timer_id: cancel_timer_id.to_string(),
67
66
  ..Default::default()
68
- }),
69
- );
67
+ },
68
+ ));
70
69
  // 12
71
70
  t.add_workflow_execution_completed();
72
71
  t
@@ -86,8 +85,8 @@ pub fn parallel_timer(timer1: &str, timer2: &str) -> TestHistoryBuilder {
86
85
  let mut t = TestHistoryBuilder::default();
87
86
  t.add_by_type(EventType::WorkflowExecutionStarted);
88
87
  t.add_full_wf_task();
89
- let timer_started_event_id = t.add_get_event_id(EventType::TimerStarted, None);
90
- let timer_2_started_event_id = t.add_get_event_id(EventType::TimerStarted, None);
88
+ let timer_started_event_id = t.add_by_type(EventType::TimerStarted);
89
+ let timer_2_started_event_id = t.add_by_type(EventType::TimerStarted);
91
90
  t.add_timer_fired(timer_started_event_id, timer1.to_string());
92
91
  t.add_timer_fired(timer_2_started_event_id, timer2.to_string());
93
92
  t.add_workflow_task_scheduled_and_started();
@@ -173,7 +172,7 @@ pub fn workflow_fails_with_failure_two_different_points(
173
172
  },
174
173
  );
175
174
  t.add_full_wf_task();
176
- let timer_started_event_id = t.add_get_event_id(EventType::TimerStarted, None);
175
+ let timer_started_event_id = t.add_by_type(EventType::TimerStarted);
177
176
  t.add_timer_fired(timer_started_event_id, timer_2.to_string());
178
177
  t.add_workflow_task_scheduled_and_started();
179
178
  t.add_workflow_task_failed_with_failure(
@@ -208,6 +207,22 @@ pub fn single_activity(activity_id: &str) -> TestHistoryBuilder {
208
207
  t
209
208
  }
210
209
 
210
+ /// 1: EVENT_TYPE_WORKFLOW_EXECUTION_STARTED
211
+ /// 2: EVENT_TYPE_WORKFLOW_TASK_SCHEDULED
212
+ /// 3: EVENT_TYPE_WORKFLOW_TASK_STARTED
213
+ /// 4: EVENT_TYPE_WORKFLOW_TASK_COMPLETED
214
+ /// 5: EVENT_TYPE_MARKER_RECORDED
215
+ /// 6: EVENT_TYPE_WORKFLOW_TASK_SCHEDULED
216
+ /// 7: EVENT_TYPE_WORKFLOW_TASK_STARTED
217
+ pub fn single_local_activity(activity_id: &str) -> TestHistoryBuilder {
218
+ let mut t = TestHistoryBuilder::default();
219
+ t.add_by_type(EventType::WorkflowExecutionStarted);
220
+ t.add_full_wf_task();
221
+ t.add_local_activity_result_marker(1, activity_id, Default::default());
222
+ t.add_workflow_task_scheduled_and_started();
223
+ t
224
+ }
225
+
211
226
  /// 1: EVENT_TYPE_WORKFLOW_EXECUTION_STARTED
212
227
  /// 2: EVENT_TYPE_WORKFLOW_TASK_SCHEDULED
213
228
  /// 3: EVENT_TYPE_WORKFLOW_TASK_STARTED
@@ -224,7 +239,6 @@ pub fn single_failed_activity(activity_id: &str) -> TestHistoryBuilder {
224
239
  let scheduled_event_id = t.add_activity_task_scheduled(activity_id);
225
240
  let started_event_id = t.add_activity_task_started(scheduled_event_id);
226
241
  t.add(
227
- EventType::ActivityTaskFailed,
228
242
  history_event::Attributes::ActivityTaskFailedEventAttributes(
229
243
  ActivityTaskFailedEventAttributes {
230
244
  scheduled_event_id,
@@ -262,7 +276,6 @@ pub fn cancel_scheduled_activity(activity_id: &str, signal_id: &str) -> TestHist
262
276
  );
263
277
  t.add_full_wf_task();
264
278
  t.add(
265
- EventType::ActivityTaskCancelRequested,
266
279
  history_event::Attributes::ActivityTaskCancelRequestedEventAttributes(
267
280
  ActivityTaskCancelRequestedEventAttributes {
268
281
  scheduled_event_id,
@@ -290,7 +303,6 @@ pub fn scheduled_activity_timeout(activity_id: &str) -> TestHistoryBuilder {
290
303
  t.add_full_wf_task();
291
304
  let scheduled_event_id = t.add_activity_task_scheduled(activity_id);
292
305
  t.add(
293
- EventType::ActivityTaskTimedOut,
294
306
  history_event::Attributes::ActivityTaskTimedOutEventAttributes(
295
307
  ActivityTaskTimedOutEventAttributes {
296
308
  scheduled_event_id,
@@ -335,7 +347,6 @@ pub fn scheduled_cancelled_activity_timeout(
335
347
  );
336
348
  t.add_full_wf_task();
337
349
  t.add(
338
- EventType::ActivityTaskCancelRequested,
339
350
  history_event::Attributes::ActivityTaskCancelRequestedEventAttributes(
340
351
  ActivityTaskCancelRequestedEventAttributes {
341
352
  scheduled_event_id,
@@ -344,7 +355,6 @@ pub fn scheduled_cancelled_activity_timeout(
344
355
  ),
345
356
  );
346
357
  t.add(
347
- EventType::ActivityTaskTimedOut,
348
358
  history_event::Attributes::ActivityTaskTimedOutEventAttributes(
349
359
  ActivityTaskTimedOutEventAttributes {
350
360
  scheduled_event_id,
@@ -372,30 +382,12 @@ pub fn started_activity_timeout(activity_id: &str) -> TestHistoryBuilder {
372
382
  let mut t = TestHistoryBuilder::default();
373
383
  t.add_by_type(EventType::WorkflowExecutionStarted);
374
384
  t.add_full_wf_task();
375
- let scheduled_event_id = t.add_get_event_id(
376
- EventType::ActivityTaskScheduled,
377
- Some(
378
- history_event::Attributes::ActivityTaskScheduledEventAttributes(
379
- ActivityTaskScheduledEventAttributes {
380
- activity_id: activity_id.to_string(),
381
- ..Default::default()
382
- },
383
- ),
384
- ),
385
- );
386
- let started_event_id = t.add_get_event_id(
387
- EventType::ActivityTaskStarted,
388
- Some(
389
- history_event::Attributes::ActivityTaskStartedEventAttributes(
390
- ActivityTaskStartedEventAttributes {
391
- scheduled_event_id,
392
- ..Default::default()
393
- },
394
- ),
395
- ),
396
- );
385
+ let scheduled_event_id = t.add_activity_task_scheduled(activity_id);
386
+ let started_event_id = t.add(ActivityTaskStartedEventAttributes {
387
+ scheduled_event_id,
388
+ ..Default::default()
389
+ });
397
390
  t.add(
398
- EventType::ActivityTaskTimedOut,
399
391
  history_event::Attributes::ActivityTaskTimedOutEventAttributes(
400
392
  ActivityTaskTimedOutEventAttributes {
401
393
  scheduled_event_id,
@@ -423,17 +415,7 @@ pub fn cancel_scheduled_activity_abandon(activity_id: &str, signal_id: &str) ->
423
415
  let mut t = TestHistoryBuilder::default();
424
416
  t.add_by_type(EventType::WorkflowExecutionStarted);
425
417
  t.add_full_wf_task();
426
- t.add_get_event_id(
427
- EventType::ActivityTaskScheduled,
428
- Some(
429
- history_event::Attributes::ActivityTaskScheduledEventAttributes(
430
- ActivityTaskScheduledEventAttributes {
431
- activity_id: activity_id.to_string(),
432
- ..Default::default()
433
- },
434
- ),
435
- ),
436
- );
418
+ t.add_activity_task_scheduled(activity_id);
437
419
  t.add_we_signaled(
438
420
  signal_id,
439
421
  vec![Payload {
@@ -461,28 +443,11 @@ pub fn cancel_started_activity_abandon(activity_id: &str, signal_id: &str) -> Te
461
443
  let mut t = TestHistoryBuilder::default();
462
444
  t.add_by_type(EventType::WorkflowExecutionStarted);
463
445
  t.add_full_wf_task();
464
- let scheduled_event_id = t.add_get_event_id(
465
- EventType::ActivityTaskScheduled,
466
- Some(
467
- history_event::Attributes::ActivityTaskScheduledEventAttributes(
468
- ActivityTaskScheduledEventAttributes {
469
- activity_id: activity_id.to_string(),
470
- ..Default::default()
471
- },
472
- ),
473
- ),
474
- );
475
- t.add_get_event_id(
476
- EventType::ActivityTaskStarted,
477
- Some(
478
- history_event::Attributes::ActivityTaskStartedEventAttributes(
479
- ActivityTaskStartedEventAttributes {
480
- scheduled_event_id,
481
- ..Default::default()
482
- },
483
- ),
484
- ),
485
- );
446
+ let scheduled_event_id = t.add_activity_task_scheduled(activity_id);
447
+ t.add(ActivityTaskStartedEventAttributes {
448
+ scheduled_event_id,
449
+ ..Default::default()
450
+ });
486
451
  t.add_we_signaled(
487
452
  signal_id,
488
453
  vec![Payload {
@@ -521,17 +486,7 @@ pub fn cancel_scheduled_activity_with_signal_and_activity_task_cancel(
521
486
  let mut t = TestHistoryBuilder::default();
522
487
  t.add_by_type(EventType::WorkflowExecutionStarted);
523
488
  t.add_full_wf_task();
524
- let scheduled_event_id = t.add_get_event_id(
525
- EventType::ActivityTaskScheduled,
526
- Some(
527
- history_event::Attributes::ActivityTaskScheduledEventAttributes(
528
- ActivityTaskScheduledEventAttributes {
529
- activity_id: activity_id.to_string(),
530
- ..Default::default()
531
- },
532
- ),
533
- ),
534
- );
489
+ let scheduled_event_id = t.add_activity_task_scheduled(activity_id);
535
490
  t.add_we_signaled(
536
491
  signal_id,
537
492
  vec![Payload {
@@ -541,7 +496,6 @@ pub fn cancel_scheduled_activity_with_signal_and_activity_task_cancel(
541
496
  );
542
497
  t.add_full_wf_task();
543
498
  t.add(
544
- EventType::ActivityTaskCancelRequested,
545
499
  history_event::Attributes::ActivityTaskCancelRequestedEventAttributes(
546
500
  ActivityTaskCancelRequestedEventAttributes {
547
501
  scheduled_event_id,
@@ -558,7 +512,6 @@ pub fn cancel_scheduled_activity_with_signal_and_activity_task_cancel(
558
512
  );
559
513
  t.add_full_wf_task();
560
514
  t.add(
561
- EventType::ActivityTaskCanceled,
562
515
  history_event::Attributes::ActivityTaskCanceledEventAttributes(
563
516
  ActivityTaskCanceledEventAttributes {
564
517
  scheduled_event_id,
@@ -598,28 +551,11 @@ pub fn cancel_started_activity_with_signal_and_activity_task_cancel(
598
551
  let mut t = TestHistoryBuilder::default();
599
552
  t.add_by_type(EventType::WorkflowExecutionStarted);
600
553
  t.add_full_wf_task();
601
- let scheduled_event_id = t.add_get_event_id(
602
- EventType::ActivityTaskScheduled,
603
- Some(
604
- history_event::Attributes::ActivityTaskScheduledEventAttributes(
605
- ActivityTaskScheduledEventAttributes {
606
- activity_id: activity_id.to_string(),
607
- ..Default::default()
608
- },
609
- ),
610
- ),
611
- );
612
- t.add_get_event_id(
613
- EventType::ActivityTaskStarted,
614
- Some(
615
- history_event::Attributes::ActivityTaskStartedEventAttributes(
616
- ActivityTaskStartedEventAttributes {
617
- scheduled_event_id,
618
- ..Default::default()
619
- },
620
- ),
621
- ),
622
- );
554
+ let scheduled_event_id = t.add_activity_task_scheduled(activity_id);
555
+ t.add(ActivityTaskStartedEventAttributes {
556
+ scheduled_event_id,
557
+ ..Default::default()
558
+ });
623
559
  t.add_we_signaled(
624
560
  signal_id,
625
561
  vec![Payload {
@@ -629,7 +565,6 @@ pub fn cancel_started_activity_with_signal_and_activity_task_cancel(
629
565
  );
630
566
  t.add_full_wf_task();
631
567
  t.add(
632
- EventType::ActivityTaskCancelRequested,
633
568
  history_event::Attributes::ActivityTaskCancelRequestedEventAttributes(
634
569
  ActivityTaskCancelRequestedEventAttributes {
635
570
  scheduled_event_id,
@@ -646,7 +581,6 @@ pub fn cancel_started_activity_with_signal_and_activity_task_cancel(
646
581
  );
647
582
  t.add_full_wf_task();
648
583
  t.add(
649
- EventType::ActivityTaskCanceled,
650
584
  history_event::Attributes::ActivityTaskCanceledEventAttributes(
651
585
  ActivityTaskCanceledEventAttributes {
652
586
  scheduled_event_id,
@@ -681,17 +615,7 @@ pub fn cancel_scheduled_activity_with_activity_task_cancel(
681
615
  let mut t = TestHistoryBuilder::default();
682
616
  t.add_by_type(EventType::WorkflowExecutionStarted);
683
617
  t.add_full_wf_task();
684
- let scheduled_event_id = t.add_get_event_id(
685
- EventType::ActivityTaskScheduled,
686
- Some(
687
- history_event::Attributes::ActivityTaskScheduledEventAttributes(
688
- ActivityTaskScheduledEventAttributes {
689
- activity_id: activity_id.to_string(),
690
- ..Default::default()
691
- },
692
- ),
693
- ),
694
- );
618
+ let scheduled_event_id = t.add_activity_task_scheduled(activity_id);
695
619
  t.add_we_signaled(
696
620
  signal_id,
697
621
  vec![Payload {
@@ -701,7 +625,6 @@ pub fn cancel_scheduled_activity_with_activity_task_cancel(
701
625
  );
702
626
  t.add_full_wf_task();
703
627
  t.add(
704
- EventType::ActivityTaskCancelRequested,
705
628
  history_event::Attributes::ActivityTaskCancelRequestedEventAttributes(
706
629
  ActivityTaskCancelRequestedEventAttributes {
707
630
  scheduled_event_id,
@@ -710,7 +633,6 @@ pub fn cancel_scheduled_activity_with_activity_task_cancel(
710
633
  ),
711
634
  );
712
635
  t.add(
713
- EventType::ActivityTaskCanceled,
714
636
  history_event::Attributes::ActivityTaskCanceledEventAttributes(
715
637
  ActivityTaskCanceledEventAttributes {
716
638
  scheduled_event_id,
@@ -746,28 +668,11 @@ pub fn cancel_started_activity_with_activity_task_cancel(
746
668
  let mut t = TestHistoryBuilder::default();
747
669
  t.add_by_type(EventType::WorkflowExecutionStarted);
748
670
  t.add_full_wf_task();
749
- let scheduled_event_id = t.add_get_event_id(
750
- EventType::ActivityTaskScheduled,
751
- Some(
752
- history_event::Attributes::ActivityTaskScheduledEventAttributes(
753
- ActivityTaskScheduledEventAttributes {
754
- activity_id: activity_id.to_string(),
755
- ..Default::default()
756
- },
757
- ),
758
- ),
759
- );
760
- t.add_get_event_id(
761
- EventType::ActivityTaskStarted,
762
- Some(
763
- history_event::Attributes::ActivityTaskStartedEventAttributes(
764
- ActivityTaskStartedEventAttributes {
765
- scheduled_event_id,
766
- ..Default::default()
767
- },
768
- ),
769
- ),
770
- );
671
+ let scheduled_event_id = t.add_activity_task_scheduled(activity_id);
672
+ t.add(ActivityTaskStartedEventAttributes {
673
+ scheduled_event_id,
674
+ ..Default::default()
675
+ });
771
676
  t.add_we_signaled(
772
677
  signal_id,
773
678
  vec![Payload {
@@ -777,7 +682,6 @@ pub fn cancel_started_activity_with_activity_task_cancel(
777
682
  );
778
683
  t.add_full_wf_task();
779
684
  t.add(
780
- EventType::ActivityTaskCancelRequested,
781
685
  history_event::Attributes::ActivityTaskCancelRequestedEventAttributes(
782
686
  ActivityTaskCancelRequestedEventAttributes {
783
687
  scheduled_event_id,
@@ -786,7 +690,6 @@ pub fn cancel_started_activity_with_activity_task_cancel(
786
690
  ),
787
691
  );
788
692
  t.add(
789
- EventType::ActivityTaskCanceled,
790
693
  history_event::Attributes::ActivityTaskCanceledEventAttributes(
791
694
  ActivityTaskCanceledEventAttributes {
792
695
  scheduled_event_id,
@@ -849,7 +752,7 @@ pub fn long_sequential_timers(num_tasks: usize) -> TestHistoryBuilder {
849
752
  t.add_full_wf_task();
850
753
 
851
754
  for i in 1..=num_tasks {
852
- let timer_started_event_id = t.add_get_event_id(EventType::TimerStarted, None);
755
+ let timer_started_event_id = t.add_by_type(EventType::TimerStarted);
853
756
  t.add_timer_fired(timer_started_event_id, i.to_string());
854
757
  t.add_full_wf_task();
855
758
  }
@@ -903,23 +806,13 @@ pub fn unsent_at_cancel_repro() -> TestHistoryBuilder {
903
806
  t.add_by_type(EventType::WorkflowExecutionStarted);
904
807
  t.add_full_wf_task();
905
808
 
906
- let scheduled_event_id = t.add_get_event_id(
907
- EventType::ActivityTaskScheduled,
908
- Some(
909
- history_event::Attributes::ActivityTaskScheduledEventAttributes(
910
- ActivityTaskScheduledEventAttributes {
911
- activity_id: 1.to_string(),
912
- ..Default::default()
913
- },
914
- ),
915
- ),
916
- );
917
- let timer_started_event_id = t.add_get_event_id(EventType::TimerStarted, None);
809
+ let scheduled_event_id = t.add_activity_task_scheduled(1.to_string());
810
+ let timer_started_event_id = t.add_by_type(EventType::TimerStarted);
918
811
  t.add_timer_fired(timer_started_event_id, 1.to_string());
919
812
 
920
813
  t.add_full_wf_task();
921
814
  t.add_activity_task_cancel_requested(scheduled_event_id);
922
- t.add_get_event_id(EventType::TimerStarted, None);
815
+ t.add_by_type(EventType::TimerStarted);
923
816
  t.add_workflow_task_scheduled_and_started();
924
817
 
925
818
  t
@@ -947,17 +840,7 @@ pub fn cancel_not_sent_when_also_complete_repro() -> TestHistoryBuilder {
947
840
  t.add_by_type(EventType::WorkflowExecutionStarted);
948
841
  t.add_full_wf_task();
949
842
 
950
- let scheduled_event_id = t.add_get_event_id(
951
- EventType::ActivityTaskScheduled,
952
- Some(
953
- history_event::Attributes::ActivityTaskScheduledEventAttributes(
954
- ActivityTaskScheduledEventAttributes {
955
- activity_id: "act-1".to_string(),
956
- ..Default::default()
957
- },
958
- ),
959
- ),
960
- );
843
+ let scheduled_event_id = t.add_activity_task_scheduled("act-1");
961
844
  t.add_we_signaled(
962
845
  "sig-1",
963
846
  vec![Payload {
@@ -967,20 +850,12 @@ pub fn cancel_not_sent_when_also_complete_repro() -> TestHistoryBuilder {
967
850
  );
968
851
  t.add_full_wf_task();
969
852
  t.add_activity_task_cancel_requested(scheduled_event_id);
970
- t.add_get_event_id(EventType::TimerStarted, None);
971
- let started_event_id = t.add_get_event_id(
972
- EventType::ActivityTaskStarted,
973
- Some(
974
- history_event::Attributes::ActivityTaskStartedEventAttributes(
975
- ActivityTaskStartedEventAttributes {
976
- scheduled_event_id,
977
- ..Default::default()
978
- },
979
- ),
980
- ),
981
- );
853
+ t.add_by_type(EventType::TimerStarted);
854
+ let started_event_id = t.add(ActivityTaskStartedEventAttributes {
855
+ scheduled_event_id,
856
+ ..Default::default()
857
+ });
982
858
  t.add(
983
- EventType::ActivityTaskCompleted,
984
859
  history_event::Attributes::ActivityTaskCompletedEventAttributes(
985
860
  ActivityTaskCompletedEventAttributes {
986
861
  scheduled_event_id,
@@ -1015,17 +890,7 @@ pub fn wft_timeout_repro() -> TestHistoryBuilder {
1015
890
  let mut t = TestHistoryBuilder::default();
1016
891
  t.add_by_type(EventType::WorkflowExecutionStarted);
1017
892
  t.add_full_wf_task();
1018
- let scheduled_event_id = t.add_get_event_id(
1019
- EventType::ActivityTaskScheduled,
1020
- Some(
1021
- history_event::Attributes::ActivityTaskScheduledEventAttributes(
1022
- ActivityTaskScheduledEventAttributes {
1023
- activity_id: "act-1".to_string(),
1024
- ..Default::default()
1025
- },
1026
- ),
1027
- ),
1028
- );
893
+ let scheduled_event_id = t.add_activity_task_scheduled("1");
1029
894
  t.add_we_signaled(
1030
895
  "at-started",
1031
896
  vec![Payload {
@@ -1041,27 +906,15 @@ pub fn wft_timeout_repro() -> TestHistoryBuilder {
1041
906
  data: b"hello ".to_vec(),
1042
907
  }],
1043
908
  );
1044
- let started_event_id = t.add_get_event_id(
1045
- EventType::ActivityTaskStarted,
1046
- Some(
1047
- history_event::Attributes::ActivityTaskStartedEventAttributes(
1048
- ActivityTaskStartedEventAttributes {
1049
- scheduled_event_id,
1050
- ..Default::default()
1051
- },
1052
- ),
1053
- ),
1054
- );
1055
- t.add(
1056
- EventType::ActivityTaskCompleted,
1057
- history_event::Attributes::ActivityTaskCompletedEventAttributes(
1058
- ActivityTaskCompletedEventAttributes {
1059
- scheduled_event_id,
1060
- started_event_id,
1061
- ..Default::default()
1062
- },
1063
- ),
1064
- );
909
+ let started_event_id = t.add(ActivityTaskStartedEventAttributes {
910
+ scheduled_event_id,
911
+ ..Default::default()
912
+ });
913
+ t.add(ActivityTaskCompletedEventAttributes {
914
+ scheduled_event_id,
915
+ started_event_id,
916
+ ..Default::default()
917
+ });
1065
918
  t.add_workflow_task_started();
1066
919
  t.add_workflow_task_timed_out();
1067
920
  t.add_full_wf_task();
@@ -1084,7 +937,7 @@ pub fn timer_then_continue_as_new(timer_id: &str) -> TestHistoryBuilder {
1084
937
  let mut t = TestHistoryBuilder::default();
1085
938
  t.add_by_type(EventType::WorkflowExecutionStarted);
1086
939
  t.add_full_wf_task();
1087
- let timer_started_event_id = t.add_get_event_id(EventType::TimerStarted, None);
940
+ let timer_started_event_id = t.add_by_type(EventType::TimerStarted);
1088
941
  t.add_timer_fired(timer_started_event_id, timer_id.to_string());
1089
942
  t.add_full_wf_task();
1090
943
  t.add_continued_as_new();
@@ -1133,7 +986,7 @@ pub fn timer_wf_cancel_req_failed(timer_id: &str) -> TestHistoryBuilder {
1133
986
  /// 16: EVENT_TYPE_WORKFLOW_EXECUTION_CANCELED
1134
987
  pub fn timer_wf_cancel_req_do_another_timer_then_cancelled() -> TestHistoryBuilder {
1135
988
  timer_cancel_req_then("1", |t| {
1136
- let timer_started_event_id = t.add_get_event_id(EventType::TimerStarted, None);
989
+ let timer_started_event_id = t.add_by_type(EventType::TimerStarted);
1137
990
  t.add_timer_fired(timer_started_event_id, "2".to_string());
1138
991
  t.add_full_wf_task();
1139
992
  t.add_cancelled();
@@ -1158,7 +1011,7 @@ fn timer_cancel_req_then(
1158
1011
  let mut t = TestHistoryBuilder::default();
1159
1012
  t.add_by_type(EventType::WorkflowExecutionStarted);
1160
1013
  t.add_full_wf_task();
1161
- let timer_started_event_id = t.add_get_event_id(EventType::TimerStarted, None);
1014
+ let timer_started_event_id = t.add_by_type(EventType::TimerStarted);
1162
1015
  t.add_timer_fired(timer_started_event_id, timer_id.to_string());
1163
1016
  t.add_cancel_requested();
1164
1017
  t.add_full_wf_task();
@@ -1207,34 +1060,23 @@ pub fn activity_double_resolve_repro() -> TestHistoryBuilder {
1207
1060
  let mut t = TestHistoryBuilder::default();
1208
1061
  t.add_by_type(EventType::WorkflowExecutionStarted);
1209
1062
  t.add_full_wf_task();
1210
- let act_sched_id = t.add_get_event_id(
1211
- EventType::ActivityTaskScheduled,
1212
- Some(
1213
- history_event::Attributes::ActivityTaskScheduledEventAttributes(
1214
- ActivityTaskScheduledEventAttributes {
1215
- activity_id: "1".to_string(),
1216
- ..Default::default()
1217
- },
1218
- ),
1063
+ let act_sched_id = t.add(
1064
+ history_event::Attributes::ActivityTaskScheduledEventAttributes(
1065
+ ActivityTaskScheduledEventAttributes {
1066
+ activity_id: "1".to_string(),
1067
+ ..Default::default()
1068
+ },
1219
1069
  ),
1220
1070
  );
1221
1071
  t.add_we_signaled("sig1", vec![]);
1222
1072
  t.add_full_wf_task();
1223
1073
  t.add_activity_task_cancel_requested(act_sched_id);
1224
- let timer_started_event_id = t.add_get_event_id(EventType::TimerStarted, None);
1225
- t.add_get_event_id(
1226
- EventType::ActivityTaskStarted,
1227
- Some(
1228
- history_event::Attributes::ActivityTaskStartedEventAttributes(
1229
- ActivityTaskStartedEventAttributes {
1230
- scheduled_event_id: act_sched_id,
1231
- ..Default::default()
1232
- },
1233
- ),
1234
- ),
1235
- );
1074
+ let timer_started_event_id = t.add_by_type(EventType::TimerStarted);
1075
+ t.add(ActivityTaskStartedEventAttributes {
1076
+ scheduled_event_id: act_sched_id,
1077
+ ..Default::default()
1078
+ });
1236
1079
  t.add(
1237
- EventType::ActivityTaskTimedOut,
1238
1080
  history_event::Attributes::ActivityTaskTimedOutEventAttributes(
1239
1081
  ActivityTaskTimedOutEventAttributes {
1240
1082
  scheduled_event_id: act_sched_id,
@@ -1266,32 +1108,18 @@ fn start_child_wf_preamble(child_wf_id: &str) -> (TestHistoryBuilder, i64, i64)
1266
1108
  let mut t = TestHistoryBuilder::default();
1267
1109
  t.add_by_type(EventType::WorkflowExecutionStarted);
1268
1110
  t.add_full_wf_task();
1269
- let initiated_event_id = t.add_get_event_id(
1270
- EventType::StartChildWorkflowExecutionInitiated,
1271
- Some(
1272
- history_event::Attributes::StartChildWorkflowExecutionInitiatedEventAttributes(
1273
- StartChildWorkflowExecutionInitiatedEventAttributes {
1274
- workflow_id: child_wf_id.to_owned(),
1275
- ..Default::default()
1276
- },
1277
- ),
1278
- ),
1279
- );
1280
- let started_event_id = t.add_get_event_id(
1281
- EventType::ChildWorkflowExecutionStarted,
1282
- Some(
1283
- history_event::Attributes::ChildWorkflowExecutionStartedEventAttributes(
1284
- ChildWorkflowExecutionStartedEventAttributes {
1285
- initiated_event_id,
1286
- workflow_execution: Some(WorkflowExecution {
1287
- workflow_id: child_wf_id.to_owned(),
1288
- ..Default::default()
1289
- }),
1290
- ..Default::default()
1291
- },
1292
- ),
1293
- ),
1294
- );
1111
+ let initiated_event_id = t.add(StartChildWorkflowExecutionInitiatedEventAttributes {
1112
+ workflow_id: child_wf_id.to_owned(),
1113
+ ..Default::default()
1114
+ });
1115
+ let started_event_id = t.add(ChildWorkflowExecutionStartedEventAttributes {
1116
+ initiated_event_id,
1117
+ workflow_execution: Some(WorkflowExecution {
1118
+ workflow_id: child_wf_id.to_owned(),
1119
+ ..Default::default()
1120
+ }),
1121
+ ..Default::default()
1122
+ });
1295
1123
  t.add_full_wf_task();
1296
1124
  (t, initiated_event_id, started_event_id)
1297
1125
  }
@@ -1313,7 +1141,6 @@ fn start_child_wf_preamble(child_wf_id: &str) -> (TestHistoryBuilder, i64, i64)
1313
1141
  pub fn single_child_workflow(child_wf_id: &str) -> TestHistoryBuilder {
1314
1142
  let (mut t, initiated_event_id, started_event_id) = start_child_wf_preamble(child_wf_id);
1315
1143
  t.add(
1316
- EventType::ChildWorkflowExecutionCompleted,
1317
1144
  history_event::Attributes::ChildWorkflowExecutionCompletedEventAttributes(
1318
1145
  ChildWorkflowExecutionCompletedEventAttributes {
1319
1146
  initiated_event_id,
@@ -1345,7 +1172,6 @@ pub fn single_child_workflow(child_wf_id: &str) -> TestHistoryBuilder {
1345
1172
  pub fn single_child_workflow_fail(child_wf_id: &str) -> TestHistoryBuilder {
1346
1173
  let (mut t, initiated_event_id, started_event_id) = start_child_wf_preamble(child_wf_id);
1347
1174
  t.add(
1348
- EventType::ChildWorkflowExecutionFailed,
1349
1175
  history_event::Attributes::ChildWorkflowExecutionFailedEventAttributes(
1350
1176
  ChildWorkflowExecutionFailedEventAttributes {
1351
1177
  initiated_event_id,
@@ -1380,7 +1206,6 @@ pub fn single_child_workflow_signaled(child_wf_id: &str, signame: &str) -> TestH
1380
1206
  let id = t.add_signal_wf(signame, "fake_wid", "fake_rid");
1381
1207
  t.add_external_signal_completed(id);
1382
1208
  t.add(
1383
- EventType::ChildWorkflowExecutionCompleted,
1384
1209
  history_event::Attributes::ChildWorkflowExecutionCompletedEventAttributes(
1385
1210
  ChildWorkflowExecutionCompletedEventAttributes {
1386
1211
  initiated_event_id,
@@ -1418,7 +1243,6 @@ pub fn single_child_workflow_cancelled(child_wf_id: &str) -> TestHistoryBuilder
1418
1243
  });
1419
1244
  t.add_cancel_external_wf_completed(id);
1420
1245
  t.add(
1421
- EventType::ChildWorkflowExecutionCanceled,
1422
1246
  history_event::Attributes::ChildWorkflowExecutionCanceledEventAttributes(
1423
1247
  ChildWorkflowExecutionCanceledEventAttributes {
1424
1248
  initiated_event_id,
@@ -1489,30 +1313,16 @@ pub fn single_child_workflow_start_fail(child_wf_id: &str) -> TestHistoryBuilder
1489
1313
  let mut t = TestHistoryBuilder::default();
1490
1314
  t.add_by_type(EventType::WorkflowExecutionStarted);
1491
1315
  t.add_full_wf_task();
1492
- let initiated_event_id = t.add_get_event_id(
1493
- EventType::StartChildWorkflowExecutionInitiated,
1494
- Some(
1495
- history_event::Attributes::StartChildWorkflowExecutionInitiatedEventAttributes(
1496
- StartChildWorkflowExecutionInitiatedEventAttributes {
1497
- workflow_id: child_wf_id.to_owned(),
1498
- ..Default::default()
1499
- },
1500
- ),
1501
- ),
1502
- );
1503
- t.add_get_event_id(
1504
- EventType::StartChildWorkflowExecutionFailed,
1505
- Some(
1506
- history_event::Attributes::StartChildWorkflowExecutionFailedEventAttributes(
1507
- StartChildWorkflowExecutionFailedEventAttributes {
1508
- workflow_id: child_wf_id.to_owned(),
1509
- initiated_event_id,
1510
- cause: StartChildWorkflowExecutionFailedCause::WorkflowAlreadyExists as i32,
1511
- ..Default::default()
1512
- },
1513
- ),
1514
- ),
1515
- );
1316
+ let initiated_event_id = t.add(StartChildWorkflowExecutionInitiatedEventAttributes {
1317
+ workflow_id: child_wf_id.to_owned(),
1318
+ ..Default::default()
1319
+ });
1320
+ t.add(StartChildWorkflowExecutionFailedEventAttributes {
1321
+ workflow_id: child_wf_id.to_owned(),
1322
+ initiated_event_id,
1323
+ cause: StartChildWorkflowExecutionFailedCause::WorkflowAlreadyExists as i32,
1324
+ ..Default::default()
1325
+ });
1516
1326
  t.add_full_wf_task();
1517
1327
  t.add_workflow_execution_completed();
1518
1328
  t
@@ -1557,7 +1367,7 @@ pub fn two_local_activities_separated_by_timer() -> TestHistoryBuilder {
1557
1367
  t.add_by_type(EventType::WorkflowExecutionStarted);
1558
1368
  t.add_full_wf_task();
1559
1369
  t.add_local_activity_result_marker(1, "1", b"hi".into());
1560
- let timer_started_event_id = t.add_get_event_id(EventType::TimerStarted, None);
1370
+ let timer_started_event_id = t.add_by_type(EventType::TimerStarted);
1561
1371
  t.add_timer_fired(timer_started_event_id, "1".to_string());
1562
1372
  t.add_full_wf_task();
1563
1373
  t.add_local_activity_result_marker(2, "2", b"hi2".into());