temporalio 0.0.1

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 (317) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +3 -0
  3. data/LICENSE +20 -0
  4. data/README.md +130 -0
  5. data/bridge/Cargo.lock +2865 -0
  6. data/bridge/Cargo.toml +26 -0
  7. data/bridge/sdk-core/ARCHITECTURE.md +76 -0
  8. data/bridge/sdk-core/Cargo.lock +2606 -0
  9. data/bridge/sdk-core/Cargo.toml +2 -0
  10. data/bridge/sdk-core/LICENSE.txt +23 -0
  11. data/bridge/sdk-core/README.md +107 -0
  12. data/bridge/sdk-core/arch_docs/diagrams/README.md +10 -0
  13. data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +40 -0
  14. data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +1 -0
  15. data/bridge/sdk-core/arch_docs/sticky_queues.md +51 -0
  16. data/bridge/sdk-core/bridge-ffi/Cargo.toml +24 -0
  17. data/bridge/sdk-core/bridge-ffi/LICENSE.txt +23 -0
  18. data/bridge/sdk-core/bridge-ffi/build.rs +25 -0
  19. data/bridge/sdk-core/bridge-ffi/include/sdk-core-bridge.h +249 -0
  20. data/bridge/sdk-core/bridge-ffi/src/lib.rs +825 -0
  21. data/bridge/sdk-core/bridge-ffi/src/wrappers.rs +211 -0
  22. data/bridge/sdk-core/client/Cargo.toml +40 -0
  23. data/bridge/sdk-core/client/LICENSE.txt +23 -0
  24. data/bridge/sdk-core/client/src/lib.rs +1294 -0
  25. data/bridge/sdk-core/client/src/metrics.rs +165 -0
  26. data/bridge/sdk-core/client/src/raw.rs +931 -0
  27. data/bridge/sdk-core/client/src/retry.rs +674 -0
  28. data/bridge/sdk-core/client/src/workflow_handle/mod.rs +185 -0
  29. data/bridge/sdk-core/core/Cargo.toml +116 -0
  30. data/bridge/sdk-core/core/LICENSE.txt +23 -0
  31. data/bridge/sdk-core/core/benches/workflow_replay.rs +73 -0
  32. data/bridge/sdk-core/core/src/abstractions.rs +166 -0
  33. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +911 -0
  34. data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +221 -0
  35. data/bridge/sdk-core/core/src/core_tests/determinism.rs +107 -0
  36. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +515 -0
  37. data/bridge/sdk-core/core/src/core_tests/mod.rs +100 -0
  38. data/bridge/sdk-core/core/src/core_tests/queries.rs +736 -0
  39. data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +65 -0
  40. data/bridge/sdk-core/core/src/core_tests/workers.rs +259 -0
  41. data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +124 -0
  42. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +2070 -0
  43. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +515 -0
  44. data/bridge/sdk-core/core/src/lib.rs +175 -0
  45. data/bridge/sdk-core/core/src/log_export.rs +62 -0
  46. data/bridge/sdk-core/core/src/pollers/mod.rs +54 -0
  47. data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +297 -0
  48. data/bridge/sdk-core/core/src/protosext/mod.rs +428 -0
  49. data/bridge/sdk-core/core/src/replay/mod.rs +71 -0
  50. data/bridge/sdk-core/core/src/retry_logic.rs +202 -0
  51. data/bridge/sdk-core/core/src/telemetry/metrics.rs +383 -0
  52. data/bridge/sdk-core/core/src/telemetry/mod.rs +412 -0
  53. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +77 -0
  54. data/bridge/sdk-core/core/src/test_help/mod.rs +875 -0
  55. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +580 -0
  56. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +1042 -0
  57. data/bridge/sdk-core/core/src/worker/activities.rs +464 -0
  58. data/bridge/sdk-core/core/src/worker/client/mocks.rs +87 -0
  59. data/bridge/sdk-core/core/src/worker/client.rs +347 -0
  60. data/bridge/sdk-core/core/src/worker/mod.rs +566 -0
  61. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +37 -0
  62. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +110 -0
  63. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +458 -0
  64. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +911 -0
  65. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +298 -0
  66. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +171 -0
  67. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +860 -0
  68. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +140 -0
  69. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +161 -0
  70. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +133 -0
  71. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +1448 -0
  72. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +342 -0
  73. data/bridge/sdk-core/core/src/worker/workflow/machines/mutable_side_effect_state_machine.rs +127 -0
  74. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +712 -0
  75. data/bridge/sdk-core/core/src/worker/workflow/machines/side_effect_state_machine.rs +71 -0
  76. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +443 -0
  77. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +439 -0
  78. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +169 -0
  79. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +246 -0
  80. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +96 -0
  81. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +1184 -0
  82. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +277 -0
  83. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +198 -0
  84. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +647 -0
  85. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +1143 -0
  86. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +145 -0
  87. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +88 -0
  88. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +940 -0
  89. data/bridge/sdk-core/core-api/Cargo.toml +31 -0
  90. data/bridge/sdk-core/core-api/LICENSE.txt +23 -0
  91. data/bridge/sdk-core/core-api/src/errors.rs +95 -0
  92. data/bridge/sdk-core/core-api/src/lib.rs +151 -0
  93. data/bridge/sdk-core/core-api/src/worker.rs +135 -0
  94. data/bridge/sdk-core/etc/deps.svg +187 -0
  95. data/bridge/sdk-core/etc/dynamic-config.yaml +2 -0
  96. data/bridge/sdk-core/etc/otel-collector-config.yaml +36 -0
  97. data/bridge/sdk-core/etc/prometheus.yaml +6 -0
  98. data/bridge/sdk-core/fsm/Cargo.toml +18 -0
  99. data/bridge/sdk-core/fsm/LICENSE.txt +23 -0
  100. data/bridge/sdk-core/fsm/README.md +3 -0
  101. data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +27 -0
  102. data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +23 -0
  103. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +647 -0
  104. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +8 -0
  105. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +18 -0
  106. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +12 -0
  107. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +41 -0
  108. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +14 -0
  109. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +11 -0
  110. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +32 -0
  111. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +31 -0
  112. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +46 -0
  113. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +29 -0
  114. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +12 -0
  115. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +32 -0
  116. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +18 -0
  117. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +5 -0
  118. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +11 -0
  119. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +5 -0
  120. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +11 -0
  121. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +5 -0
  122. data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +14 -0
  123. data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +23 -0
  124. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +249 -0
  125. data/bridge/sdk-core/fsm/src/lib.rs +2 -0
  126. data/bridge/sdk-core/histories/fail_wf_task.bin +0 -0
  127. data/bridge/sdk-core/histories/timer_workflow_history.bin +0 -0
  128. data/bridge/sdk-core/integ-with-otel.sh +7 -0
  129. data/bridge/sdk-core/protos/api_upstream/README.md +9 -0
  130. data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +40 -0
  131. data/bridge/sdk-core/protos/api_upstream/buf.yaml +12 -0
  132. data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +141 -0
  133. data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +86 -0
  134. data/bridge/sdk-core/protos/api_upstream/temporal/api/cluster/v1/message.proto +83 -0
  135. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +259 -0
  136. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +112 -0
  137. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +46 -0
  138. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/cluster.proto +40 -0
  139. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +57 -0
  140. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +55 -0
  141. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +168 -0
  142. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +97 -0
  143. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +51 -0
  144. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +50 -0
  145. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +41 -0
  146. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +60 -0
  147. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +59 -0
  148. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +51 -0
  149. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +122 -0
  150. data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +108 -0
  151. data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +114 -0
  152. data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +56 -0
  153. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +751 -0
  154. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +97 -0
  155. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +161 -0
  156. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +99 -0
  157. data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +61 -0
  158. data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +55 -0
  159. data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +300 -0
  160. data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +108 -0
  161. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +46 -0
  162. data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +59 -0
  163. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +145 -0
  164. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +1124 -0
  165. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +401 -0
  166. data/bridge/sdk-core/protos/grpc/health/v1/health.proto +63 -0
  167. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +78 -0
  168. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +79 -0
  169. data/bridge/sdk-core/protos/local/temporal/sdk/core/bridge/bridge.proto +210 -0
  170. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +77 -0
  171. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +15 -0
  172. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +30 -0
  173. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +30 -0
  174. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +261 -0
  175. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +297 -0
  176. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +29 -0
  177. data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +38 -0
  178. data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +13 -0
  179. data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +141 -0
  180. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +63 -0
  181. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +90 -0
  182. data/bridge/sdk-core/rustfmt.toml +1 -0
  183. data/bridge/sdk-core/sdk/Cargo.toml +47 -0
  184. data/bridge/sdk-core/sdk/LICENSE.txt +23 -0
  185. data/bridge/sdk-core/sdk/src/activity_context.rs +230 -0
  186. data/bridge/sdk-core/sdk/src/app_data.rs +37 -0
  187. data/bridge/sdk-core/sdk/src/conversions.rs +8 -0
  188. data/bridge/sdk-core/sdk/src/interceptors.rs +17 -0
  189. data/bridge/sdk-core/sdk/src/lib.rs +792 -0
  190. data/bridge/sdk-core/sdk/src/payload_converter.rs +11 -0
  191. data/bridge/sdk-core/sdk/src/workflow_context/options.rs +295 -0
  192. data/bridge/sdk-core/sdk/src/workflow_context.rs +683 -0
  193. data/bridge/sdk-core/sdk/src/workflow_future.rs +503 -0
  194. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +30 -0
  195. data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +23 -0
  196. data/bridge/sdk-core/sdk-core-protos/build.rs +108 -0
  197. data/bridge/sdk-core/sdk-core-protos/src/constants.rs +7 -0
  198. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +497 -0
  199. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +230 -0
  200. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +1910 -0
  201. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +38 -0
  202. data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +14 -0
  203. data/bridge/sdk-core/test-utils/Cargo.toml +35 -0
  204. data/bridge/sdk-core/test-utils/src/canned_histories.rs +1579 -0
  205. data/bridge/sdk-core/test-utils/src/histfetch.rs +28 -0
  206. data/bridge/sdk-core/test-utils/src/lib.rs +598 -0
  207. data/bridge/sdk-core/tests/integ_tests/client_tests.rs +36 -0
  208. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +128 -0
  209. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +218 -0
  210. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +146 -0
  211. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +437 -0
  212. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +93 -0
  213. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +878 -0
  214. data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +61 -0
  215. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +59 -0
  216. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +58 -0
  217. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +50 -0
  218. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +60 -0
  219. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +54 -0
  220. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +634 -0
  221. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +113 -0
  222. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +137 -0
  223. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +93 -0
  224. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +167 -0
  225. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +99 -0
  226. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +131 -0
  227. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +75 -0
  228. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +587 -0
  229. data/bridge/sdk-core/tests/load_tests.rs +191 -0
  230. data/bridge/sdk-core/tests/main.rs +111 -0
  231. data/bridge/sdk-core/tests/runner.rs +93 -0
  232. data/bridge/src/connection.rs +167 -0
  233. data/bridge/src/lib.rs +180 -0
  234. data/bridge/src/runtime.rs +47 -0
  235. data/bridge/src/worker.rs +73 -0
  236. data/ext/Rakefile +9 -0
  237. data/lib/bridge.so +0 -0
  238. data/lib/gen/dependencies/gogoproto/gogo_pb.rb +14 -0
  239. data/lib/gen/temporal/api/batch/v1/message_pb.rb +48 -0
  240. data/lib/gen/temporal/api/cluster/v1/message_pb.rb +67 -0
  241. data/lib/gen/temporal/api/command/v1/message_pb.rb +166 -0
  242. data/lib/gen/temporal/api/common/v1/message_pb.rb +69 -0
  243. data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +32 -0
  244. data/lib/gen/temporal/api/enums/v1/cluster_pb.rb +26 -0
  245. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +37 -0
  246. data/lib/gen/temporal/api/enums/v1/common_pb.rb +41 -0
  247. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +67 -0
  248. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +71 -0
  249. data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +37 -0
  250. data/lib/gen/temporal/api/enums/v1/query_pb.rb +31 -0
  251. data/lib/gen/temporal/api/enums/v1/reset_pb.rb +24 -0
  252. data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +28 -0
  253. data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +30 -0
  254. data/lib/gen/temporal/api/enums/v1/update_pb.rb +28 -0
  255. data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +89 -0
  256. data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +84 -0
  257. data/lib/gen/temporal/api/failure/v1/message_pb.rb +83 -0
  258. data/lib/gen/temporal/api/filter/v1/message_pb.rb +40 -0
  259. data/lib/gen/temporal/api/history/v1/message_pb.rb +489 -0
  260. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +63 -0
  261. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +125 -0
  262. data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +20 -0
  263. data/lib/gen/temporal/api/query/v1/message_pb.rb +38 -0
  264. data/lib/gen/temporal/api/replication/v1/message_pb.rb +37 -0
  265. data/lib/gen/temporal/api/schedule/v1/message_pb.rb +128 -0
  266. data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +73 -0
  267. data/lib/gen/temporal/api/update/v1/message_pb.rb +26 -0
  268. data/lib/gen/temporal/api/version/v1/message_pb.rb +41 -0
  269. data/lib/gen/temporal/api/workflow/v1/message_pb.rb +110 -0
  270. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +771 -0
  271. data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +20 -0
  272. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +58 -0
  273. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +57 -0
  274. data/lib/gen/temporal/sdk/core/bridge/bridge_pb.rb +222 -0
  275. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +57 -0
  276. data/lib/gen/temporal/sdk/core/common/common_pb.rb +22 -0
  277. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +34 -0
  278. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +27 -0
  279. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +164 -0
  280. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +192 -0
  281. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +34 -0
  282. data/lib/temporal/bridge.rb +14 -0
  283. data/lib/temporal/client/implementation.rb +339 -0
  284. data/lib/temporal/client/workflow_handle.rb +243 -0
  285. data/lib/temporal/client.rb +144 -0
  286. data/lib/temporal/connection.rb +736 -0
  287. data/lib/temporal/data_converter.rb +150 -0
  288. data/lib/temporal/error/failure.rb +194 -0
  289. data/lib/temporal/error/workflow_failure.rb +17 -0
  290. data/lib/temporal/errors.rb +22 -0
  291. data/lib/temporal/failure_converter/base.rb +26 -0
  292. data/lib/temporal/failure_converter/basic.rb +313 -0
  293. data/lib/temporal/failure_converter.rb +8 -0
  294. data/lib/temporal/interceptor/chain.rb +27 -0
  295. data/lib/temporal/interceptor/client.rb +102 -0
  296. data/lib/temporal/payload_codec/base.rb +32 -0
  297. data/lib/temporal/payload_converter/base.rb +24 -0
  298. data/lib/temporal/payload_converter/bytes.rb +26 -0
  299. data/lib/temporal/payload_converter/composite.rb +47 -0
  300. data/lib/temporal/payload_converter/encoding_base.rb +35 -0
  301. data/lib/temporal/payload_converter/json.rb +25 -0
  302. data/lib/temporal/payload_converter/nil.rb +25 -0
  303. data/lib/temporal/payload_converter.rb +14 -0
  304. data/lib/temporal/retry_policy.rb +82 -0
  305. data/lib/temporal/retry_state.rb +35 -0
  306. data/lib/temporal/runtime.rb +22 -0
  307. data/lib/temporal/timeout_type.rb +29 -0
  308. data/lib/temporal/version.rb +3 -0
  309. data/lib/temporal/workflow/execution_info.rb +54 -0
  310. data/lib/temporal/workflow/execution_status.rb +36 -0
  311. data/lib/temporal/workflow/id_reuse_policy.rb +36 -0
  312. data/lib/temporal/workflow/query_reject_condition.rb +33 -0
  313. data/lib/temporal.rb +8 -0
  314. data/lib/temporalio.rb +3 -0
  315. data/lib/thermite_patch.rb +23 -0
  316. data/temporalio.gemspec +41 -0
  317. metadata +583 -0
@@ -0,0 +1,210 @@
1
+ syntax = "proto3";
2
+
3
+ package coresdk.bridge;
4
+
5
+ import "google/protobuf/duration.proto";
6
+ import "google/protobuf/timestamp.proto";
7
+ import "google/protobuf/wrappers.proto";
8
+ import "temporal/sdk/core/core_interface.proto";
9
+ import "temporal/sdk/core/activity_task/activity_task.proto";
10
+ import "temporal/sdk/core/workflow_activation/workflow_activation.proto";
11
+ import "temporal/sdk/core/workflow_completion/workflow_completion.proto";
12
+
13
+ enum LogLevel {
14
+ LOG_LEVEL_UNSPECIFIED = 0;
15
+ OFF = 1;
16
+ ERROR = 2;
17
+ WARN = 3;
18
+ INFO = 4;
19
+ DEBUG = 5;
20
+ TRACE = 6;
21
+ }
22
+
23
+ message InitTelemetryRequest {
24
+ string tracing_filter = 1;
25
+ oneof logging {
26
+ ConsoleLoggerOptions console = 2;
27
+ ForwardLoggerOptions forward = 3;
28
+ };
29
+
30
+ oneof tracing {
31
+ OtelCollectorOptions otel_tracing = 4;
32
+ }
33
+
34
+ oneof metrics {
35
+ OtelCollectorOptions otel_metrics = 5;
36
+ PrometheusOptions prometheus = 6;
37
+ }
38
+
39
+ message ConsoleLoggerOptions {}
40
+ message ForwardLoggerOptions {
41
+ LogLevel level = 1;
42
+ }
43
+
44
+ message OtelCollectorOptions {
45
+ string url = 1;
46
+ map<string, string> headers = 2;
47
+ }
48
+ message PrometheusOptions {
49
+ string export_bind_address = 1;
50
+ }
51
+ }
52
+
53
+ message CreateClientRequest {
54
+ string target_url = 1;
55
+ string namespace = 2;
56
+ string client_name = 3;
57
+ string client_version = 4;
58
+ string identity = 6;
59
+ TlsConfig tls_config = 8;
60
+ RetryConfig retry_config = 9;
61
+
62
+ message TlsConfig {
63
+ bytes server_root_ca_cert = 1;
64
+ string domain = 2;
65
+ bytes client_cert = 3;
66
+ bytes client_private_key = 4;
67
+ }
68
+
69
+ message RetryConfig {
70
+ google.protobuf.Duration initial_interval = 1;
71
+ google.protobuf.DoubleValue randomization_factor = 2;
72
+ google.protobuf.DoubleValue multiplier = 3;
73
+ google.protobuf.Duration max_interval = 4;
74
+ google.protobuf.Duration max_elapsed_time = 5;
75
+ google.protobuf.UInt32Value max_retries = 6;
76
+ }
77
+ }
78
+
79
+ message InitResponse {
80
+ Error error = 1;
81
+
82
+ message Error {
83
+ string message = 1;
84
+ }
85
+ }
86
+
87
+ message CreateWorkerRequest {
88
+ string task_queue = 1;
89
+ google.protobuf.UInt32Value max_cached_workflows = 2;
90
+ google.protobuf.UInt32Value max_outstanding_workflow_tasks = 3;
91
+ google.protobuf.UInt32Value max_outstanding_activities = 4;
92
+ google.protobuf.UInt32Value max_outstanding_local_activities = 5;
93
+ google.protobuf.UInt32Value max_concurrent_wft_polls = 6;
94
+ google.protobuf.FloatValue nonsticky_to_sticky_poll_ratio = 7;
95
+ google.protobuf.UInt32Value max_concurrent_at_polls = 8;
96
+ bool no_remote_activities = 9;
97
+ google.protobuf.Duration sticky_queue_schedule_to_start_timeout = 10;
98
+ google.protobuf.Duration max_heartbeat_throttle_interval = 11;
99
+ google.protobuf.Duration default_heartbeat_throttle_interval = 12;
100
+ }
101
+
102
+ message RegisterWorkerResponse {
103
+ Error error = 1;
104
+
105
+ message Error {
106
+ string message = 1;
107
+ }
108
+ }
109
+
110
+ message PollWorkflowActivationRequest {
111
+ }
112
+
113
+ message PollWorkflowActivationResponse {
114
+ oneof response {
115
+ coresdk.workflow_activation.WorkflowActivation activation = 1;
116
+ Error error = 2;
117
+ }
118
+
119
+ message Error {
120
+ string message = 1;
121
+ bool shutdown = 2;
122
+ }
123
+ }
124
+
125
+ message PollActivityTaskRequest {
126
+ }
127
+
128
+ message PollActivityTaskResponse {
129
+ oneof response {
130
+ coresdk.activity_task.ActivityTask task = 1;
131
+ Error error = 2;
132
+ }
133
+
134
+ message Error {
135
+ string message = 1;
136
+ bool shutdown = 2;
137
+ }
138
+ }
139
+
140
+ message CompleteWorkflowActivationRequest {
141
+ coresdk.workflow_completion.WorkflowActivationCompletion completion = 1;
142
+ }
143
+
144
+ message CompleteWorkflowActivationResponse {
145
+ Error error = 1;
146
+
147
+ message Error {
148
+ string message = 1;
149
+ }
150
+ }
151
+
152
+ message CompleteActivityTaskRequest {
153
+ coresdk.ActivityTaskCompletion completion = 1;
154
+ }
155
+
156
+ message CompleteActivityTaskResponse {
157
+ Error error = 1;
158
+
159
+ message Error {
160
+ string message = 1;
161
+ }
162
+ }
163
+
164
+ message RecordActivityHeartbeatRequest {
165
+ coresdk.ActivityHeartbeat heartbeat = 1;
166
+ }
167
+
168
+ message RecordActivityHeartbeatResponse {
169
+ Error error = 1;
170
+
171
+ message Error {
172
+ string message = 1;
173
+ }
174
+ }
175
+
176
+ message RequestWorkflowEvictionRequest {
177
+ string run_id = 1;
178
+ }
179
+
180
+ message RequestWorkflowEvictionResponse {
181
+ Error error = 1;
182
+
183
+ message Error {
184
+ string message = 1;
185
+ }
186
+ }
187
+
188
+ message ShutdownWorkerRequest {
189
+ }
190
+
191
+ message ShutdownWorkerResponse {
192
+ Error error = 1;
193
+
194
+ message Error {
195
+ string message = 1;
196
+ }
197
+ }
198
+
199
+ message FetchBufferedLogsRequest {
200
+ }
201
+
202
+ message FetchBufferedLogsResponse {
203
+ repeated LogEntry entries = 1;
204
+
205
+ message LogEntry {
206
+ string message = 1;
207
+ google.protobuf.Timestamp timestamp = 2;
208
+ LogLevel level = 3;
209
+ }
210
+ }
@@ -0,0 +1,77 @@
1
+ syntax = "proto3";
2
+
3
+ package coresdk.child_workflow;
4
+
5
+ import "temporal/api/common/v1/message.proto";
6
+ import "temporal/api/failure/v1/message.proto";
7
+ import "temporal/sdk/core/common/common.proto";
8
+
9
+ /**
10
+ * Used by core to resolve child workflow executions.
11
+ */
12
+ message ChildWorkflowResult {
13
+ oneof status {
14
+ Success completed = 1;
15
+ Failure failed = 2;
16
+ Cancellation cancelled = 3;
17
+ }
18
+ }
19
+
20
+ /**
21
+ * Used in ChildWorkflowResult to report successful completion.
22
+ */
23
+ message Success {
24
+ temporal.api.common.v1.Payload result = 1;
25
+ }
26
+
27
+ /**
28
+ * Used in ChildWorkflowResult to report non successful outcomes such as
29
+ * application failures, timeouts, terminations, and cancellations.
30
+ */
31
+ message Failure {
32
+ temporal.api.failure.v1.Failure failure = 1;
33
+ }
34
+
35
+ /**
36
+ * Used in ChildWorkflowResult to report cancellation.
37
+ * Failure should be ChildWorkflowFailure with a CanceledFailure cause.
38
+ */
39
+ message Cancellation {
40
+ temporal.api.failure.v1.Failure failure = 1;
41
+ }
42
+
43
+ /**
44
+ * Used by the service to determine the fate of a child workflow
45
+ * in case its parent is closed.
46
+ */
47
+ enum ParentClosePolicy {
48
+ /** Let's the server set the default. */
49
+ PARENT_CLOSE_POLICY_UNSPECIFIED = 0;
50
+ /** Terminate means terminating the child workflow. */
51
+ PARENT_CLOSE_POLICY_TERMINATE = 1;
52
+ /** Abandon means not doing anything on the child workflow. */
53
+ PARENT_CLOSE_POLICY_ABANDON = 2;
54
+ /** Cancel means requesting cancellation on the child workflow. */
55
+ PARENT_CLOSE_POLICY_REQUEST_CANCEL = 3;
56
+ }
57
+
58
+ /** Possible causes of failure to start a child workflow */
59
+ enum StartChildWorkflowExecutionFailedCause {
60
+ START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_UNSPECIFIED = 0;
61
+ START_CHILD_WORKFLOW_EXECUTION_FAILED_CAUSE_WORKFLOW_ALREADY_EXISTS = 1;
62
+ }
63
+
64
+ /**
65
+ * Controls at which point to report back to lang when a child workflow is cancelled
66
+ */
67
+ enum ChildWorkflowCancellationType {
68
+ /** Do not request cancellation of the child workflow if already scheduled */
69
+ ABANDON = 0;
70
+ /** Initiate a cancellation request and immediately report cancellation to the parent. */
71
+ TRY_CANCEL = 1;
72
+ /** Wait for child cancellation completion. */
73
+ WAIT_CANCELLATION_COMPLETED = 2;
74
+ /** Request cancellation of the child and wait for confirmation that the request was received. */
75
+ WAIT_CANCELLATION_REQUESTED = 3;
76
+ }
77
+
@@ -0,0 +1,15 @@
1
+ syntax = "proto3";
2
+
3
+ package coresdk.common;
4
+
5
+ import "google/protobuf/duration.proto";
6
+
7
+ // Identifying information about a particular workflow execution, including namespace
8
+ message NamespacedWorkflowExecution {
9
+ // Namespace the workflow run is located in
10
+ string namespace = 1;
11
+ // Can never be empty
12
+ string workflow_id = 2;
13
+ // May be empty if the most recent run of the workflow with the given ID is being targeted
14
+ string run_id = 3;
15
+ }
@@ -0,0 +1,30 @@
1
+ syntax = "proto3";
2
+
3
+ package coresdk;
4
+
5
+ // Note: Intellij will think the Google imports don't work because of the slightly odd nature of
6
+ // the include paths. You can make it work by going to the "Protobuf Support" settings section
7
+ // and adding the "api_upstream" subdir as an include path.
8
+ import "google/protobuf/duration.proto";
9
+ import "google/protobuf/empty.proto";
10
+ import "google/protobuf/timestamp.proto";
11
+ import "temporal/api/common/v1/message.proto";
12
+ import "temporal/sdk/core/activity_result/activity_result.proto";
13
+ import "temporal/sdk/core/activity_task/activity_task.proto";
14
+ import "temporal/sdk/core/common/common.proto";
15
+ import "temporal/sdk/core/external_data/external_data.proto";
16
+ import "temporal/sdk/core/workflow_activation/workflow_activation.proto";
17
+ import "temporal/sdk/core/workflow_commands/workflow_commands.proto";
18
+ import "temporal/sdk/core/workflow_completion/workflow_completion.proto";
19
+
20
+ // A request as given to `record_activity_heartbeat`
21
+ message ActivityHeartbeat {
22
+ bytes task_token = 1;
23
+ repeated temporal.api.common.v1.Payload details = 2;
24
+ }
25
+
26
+ // A request as given to `complete_activity_task`
27
+ message ActivityTaskCompletion {
28
+ bytes task_token = 1;
29
+ activity_result.ActivityExecutionResult result = 2;
30
+ }
@@ -0,0 +1,30 @@
1
+ syntax = "proto3";
2
+
3
+ package coresdk.external_data;
4
+
5
+ import "google/protobuf/duration.proto";
6
+ import "google/protobuf/timestamp.proto";
7
+
8
+ // This file defines data that Core might write externally. The first motivating case being
9
+ // storing data in markers in event history. Defining such data as protos provides an easy way
10
+ // for consumers which would like to just depend on the proto package to make sense of marker data.
11
+
12
+ message LocalActivityMarkerData {
13
+ uint32 seq = 1;
14
+ // The number of attempts at execution before we recorded this result. Typically starts at 1,
15
+ // but it is possible to start at a higher number when backing off using a timer.
16
+ uint32 attempt = 2;
17
+ string activity_id = 3;
18
+ string activity_type = 4;
19
+ // You can think of this as "perceived completion time". It is the time the local activity thought
20
+ // it was when it completed. Which could be different from wall-clock time because of workflow
21
+ // replay. It's the WFT start time + the LA's runtime
22
+ google.protobuf.Timestamp complete_time = 5;
23
+ // If set, this local activity conceptually is retrying after the specified backoff.
24
+ // Implementation wise, they are really two different LA machines, but with the same type & input.
25
+ // The retry starts with an attempt number > 1.
26
+ google.protobuf.Duration backoff = 6;
27
+ // The time the LA was originally scheduled (wall clock time). This is used to track
28
+ // schedule-to-close timeouts when timer-based backoffs are used
29
+ google.protobuf.Timestamp original_schedule_time = 7;
30
+ }
@@ -0,0 +1,261 @@
1
+ syntax = "proto3";
2
+
3
+ /**
4
+ * Definitions of the different workflow activation jobs returned from [crate::Core::poll_task]. The
5
+ * lang SDK applies these activation jobs to drive workflows.
6
+ */
7
+ package coresdk.workflow_activation;
8
+
9
+ import "google/protobuf/timestamp.proto";
10
+ import "google/protobuf/duration.proto";
11
+ import "temporal/api/failure/v1/message.proto";
12
+ import "temporal/api/common/v1/message.proto";
13
+ import "temporal/api/enums/v1/workflow.proto";
14
+ import "temporal/sdk/core/activity_result/activity_result.proto";
15
+ import "temporal/sdk/core/child_workflow/child_workflow.proto";
16
+ import "temporal/sdk/core/common/common.proto";
17
+
18
+ /// An instruction to the lang sdk to run some workflow code, whether for the first time or from
19
+ /// a cached state.
20
+ message WorkflowActivation {
21
+ /// The id of the currently active run of the workflow. Also used as a cache key. There may
22
+ /// only ever be one active workflow task (and hence activation) of a run at one time.
23
+ string run_id = 1;
24
+ /// The current time as understood by the workflow, which is set by workflow task started events
25
+ google.protobuf.Timestamp timestamp = 2;
26
+ /// Whether or not the activation is replaying past events
27
+ bool is_replaying = 3;
28
+ /// Current history length as determined by the event id of the most recently processed event.
29
+ /// This ensures that the number is always deterministic
30
+ uint32 history_length = 4;
31
+ /// The things to do upon activating the workflow
32
+ repeated WorkflowActivationJob jobs = 5;
33
+ }
34
+
35
+ message WorkflowActivationJob {
36
+ oneof variant {
37
+ /// Begin a workflow for the first time
38
+ StartWorkflow start_workflow = 1;
39
+ /// A timer has fired, allowing whatever was waiting on it (if anything) to proceed
40
+ FireTimer fire_timer = 2;
41
+ /// Workflow was reset. The randomness seed must be updated.
42
+ UpdateRandomSeed update_random_seed = 4;
43
+ /// A request to query the workflow was received.
44
+ QueryWorkflow query_workflow = 5;
45
+ /// A request to cancel the workflow was received.
46
+ CancelWorkflow cancel_workflow = 6;
47
+ /// A request to signal the workflow was received.
48
+ SignalWorkflow signal_workflow = 7;
49
+ /// An activity was resolved, result could be completed, failed or cancelled
50
+ ResolveActivity resolve_activity = 8;
51
+ /// A patch marker has been detected and lang is being told that change exists. This
52
+ /// job is strange in that it is sent pre-emptively to lang without any corresponding
53
+ /// command being sent first.
54
+ NotifyHasPatch notify_has_patch = 9;
55
+ /// A child workflow execution has started or failed to start
56
+ ResolveChildWorkflowExecutionStart resolve_child_workflow_execution_start = 10;
57
+ /// A child workflow was resolved, result could be completed or failed
58
+ ResolveChildWorkflowExecution resolve_child_workflow_execution = 11;
59
+ /// An attempt to signal an external workflow resolved
60
+ ResolveSignalExternalWorkflow resolve_signal_external_workflow = 12;
61
+ /// An attempt to cancel an external workflow resolved
62
+ ResolveRequestCancelExternalWorkflow resolve_request_cancel_external_workflow = 13;
63
+ /// Remove the workflow identified by the [WorkflowActivation] containing this job from the cache
64
+ /// after performing the activation.
65
+ ///
66
+ /// If other job variant are present in the list, this variant will be the last job in the
67
+ /// job list. The string value is a reason for eviction.
68
+ RemoveFromCache remove_from_cache = 50;
69
+ }
70
+ }
71
+
72
+ // Start a new workflow
73
+ message StartWorkflow {
74
+ // The identifier the lang-specific sdk uses to execute workflow code
75
+ string workflow_type = 1;
76
+ // The workflow id used on the temporal server
77
+ string workflow_id = 2;
78
+ // Inputs to the workflow code
79
+ repeated temporal.api.common.v1.Payload arguments = 3;
80
+ // The seed must be used to initialize the random generator used by SDK.
81
+ // RandomSeedUpdatedAttributes are used to deliver seed updates.
82
+ uint64 randomness_seed = 4;
83
+ // Used to add metadata e.g. for tracing and auth, meant to be read and written to by interceptors.
84
+ map<string, temporal.api.common.v1.Payload> headers = 5;
85
+ // Identity of the client who requested this execution
86
+ string identity = 6;
87
+ // If this workflow is a child, information about the parent
88
+ common.NamespacedWorkflowExecution parent_workflow_info = 7;
89
+ // Total workflow execution timeout including retries and continue as new.
90
+ google.protobuf.Duration workflow_execution_timeout = 8;
91
+ // Timeout of a single workflow run.
92
+ google.protobuf.Duration workflow_run_timeout = 9;
93
+ // Timeout of a single workflow task.
94
+ google.protobuf.Duration workflow_task_timeout = 10;
95
+ // Run id of the previous workflow which continued-as-new or retired or cron executed into this
96
+ // workflow, if any.
97
+ string continued_from_execution_run_id = 11;
98
+ // If this workflow was a continuation, indicates the type of continuation.
99
+ temporal.api.enums.v1.ContinueAsNewInitiator continued_initiator = 12;
100
+ // If this workflow was a continuation and that continuation failed, the details of that.
101
+ temporal.api.failure.v1.Failure continued_failure = 13;
102
+ // If this workflow was a continuation and that continuation completed, the details of that.
103
+ temporal.api.common.v1.Payloads last_completion_result = 14;
104
+ // This is the very first run id the workflow ever had, following continuation chains.
105
+ string first_execution_run_id = 15;
106
+ // This workflow's retry policy
107
+ temporal.api.common.v1.RetryPolicy retry_policy = 16;
108
+ // Starting at 1, the number of times we have tried to execute this workflow
109
+ int32 attempt = 17;
110
+ // If this workflow runs on a cron schedule, it will appear here
111
+ string cron_schedule = 18;
112
+ // The absolute time at which the workflow will be timed out.
113
+ // This is passed without change to the next run/retry of a workflow.
114
+ google.protobuf.Timestamp workflow_execution_expiration_time = 19;
115
+ // For a cron workflow, this contains the amount of time between when this iteration of
116
+ // the cron workflow was scheduled and when it should run next per its cron_schedule.
117
+ google.protobuf.Duration cron_schedule_to_schedule_interval = 20;
118
+ // User-defined memo
119
+ temporal.api.common.v1.Memo memo = 21;
120
+ // Search attributes created/updated when this workflow was started
121
+ temporal.api.common.v1.SearchAttributes search_attributes = 22;
122
+ }
123
+
124
+ /// Notify a workflow that a timer has fired
125
+ message FireTimer {
126
+ /// Sequence number as provided by lang in the corresponding StartTimer command
127
+ uint32 seq = 1;
128
+ }
129
+
130
+ /// Notify a workflow that an activity has been resolved
131
+ message ResolveActivity {
132
+ /// Sequence number as provided by lang in the corresponding ScheduleActivity command
133
+ uint32 seq = 1;
134
+ activity_result.ActivityResolution result = 2;
135
+ }
136
+
137
+ /// Notify a workflow that a start child workflow execution request has succeeded, failed or was
138
+ /// cancelled.
139
+ message ResolveChildWorkflowExecutionStart {
140
+ /// Sequence number as provided by lang in the corresponding StartChildWorkflowExecution command
141
+ uint32 seq = 1;
142
+ oneof status {
143
+ ResolveChildWorkflowExecutionStartSuccess succeeded = 2;
144
+ ResolveChildWorkflowExecutionStartFailure failed = 3;
145
+ ResolveChildWorkflowExecutionStartCancelled cancelled = 4;
146
+ }
147
+ }
148
+
149
+ /// Simply pass the run_id to lang
150
+ message ResolveChildWorkflowExecutionStartSuccess {
151
+ string run_id = 1;
152
+ }
153
+
154
+ /// Provide lang the cause of failure
155
+ message ResolveChildWorkflowExecutionStartFailure {
156
+ /// Lang should have this information but it's more convenient to pass it back
157
+ /// for error construction on the lang side.
158
+ string workflow_id = 1;
159
+ string workflow_type = 2;
160
+ child_workflow.StartChildWorkflowExecutionFailedCause cause = 3;
161
+ }
162
+
163
+ /// `failure` should be ChildWorkflowFailure with cause set to CancelledFailure.
164
+ /// The failure is constructed in core for lang's convenience.
165
+ message ResolveChildWorkflowExecutionStartCancelled {
166
+ temporal.api.failure.v1.Failure failure = 1;
167
+ }
168
+
169
+ /// Notify a workflow that a child workflow execution has been resolved
170
+ message ResolveChildWorkflowExecution {
171
+ /// Sequence number as provided by lang in the corresponding StartChildWorkflowExecution command
172
+ uint32 seq = 1;
173
+ child_workflow.ChildWorkflowResult result = 2;
174
+ }
175
+
176
+ /// Update the workflow's random seed
177
+ message UpdateRandomSeed {
178
+ uint64 randomness_seed = 1;
179
+ }
180
+
181
+ /// Query a workflow
182
+ message QueryWorkflow {
183
+ /// For PollWFTResp `query` field, this will be set to the special value `legacy`. For the
184
+ /// `queries` field, the server provides a unique identifier. If it is a `legacy` query,
185
+ /// lang cannot issue any commands in response other than to answer the query.
186
+ string query_id = 1;
187
+ /// The query's function/method/etc name
188
+ string query_type = 2;
189
+ repeated temporal.api.common.v1.Payload arguments = 3;
190
+ /// Headers attached to the query
191
+ map<string, temporal.api.common.v1.Payload> headers = 5;
192
+ }
193
+
194
+ /// Cancel a running workflow
195
+ message CancelWorkflow {
196
+ /// Information from the cancellation request
197
+ repeated temporal.api.common.v1.Payload details = 1;
198
+ }
199
+
200
+ // Send a signal to a workflow
201
+ message SignalWorkflow {
202
+ string signal_name = 1;
203
+ repeated temporal.api.common.v1.Payload input = 2;
204
+ // Identity of the sender of the signal
205
+ string identity = 3;
206
+ // Headers attached to the signal
207
+ map<string, temporal.api.common.v1.Payload> headers = 5;
208
+ }
209
+
210
+ // Inform lang what the result of a call to `patched` or similar API should be -- this is always
211
+ // sent pre-emptively, so any time it is sent the change is present
212
+ message NotifyHasPatch {
213
+ string patch_id = 1;
214
+ }
215
+
216
+ message ResolveSignalExternalWorkflow {
217
+ /// Sequence number as provided by lang in the corresponding SignalExternalWorkflowExecution
218
+ /// command
219
+ uint32 seq = 1;
220
+ /// If populated, this signal either failed to be sent or was cancelled depending on failure
221
+ /// type / info.
222
+ temporal.api.failure.v1.Failure failure = 2;
223
+ }
224
+
225
+ message ResolveRequestCancelExternalWorkflow {
226
+ /// Sequence number as provided by lang in the corresponding
227
+ /// RequestCancelExternalWorkflowExecution command
228
+ uint32 seq = 1;
229
+ /// If populated, this signal either failed to be sent or was cancelled depending on failure
230
+ /// type / info.
231
+ temporal.api.failure.v1.Failure failure = 2;
232
+ }
233
+
234
+ message RemoveFromCache {
235
+ string message = 1;
236
+
237
+ enum EvictionReason {
238
+ UNSPECIFIED = 0;
239
+ // Workflow cache is full
240
+ CACHE_FULL = 1;
241
+ // Workflow received a partial task but was not in the cache. Typically it won't be in the
242
+ // lang cache either at this point, but we send an eviction to be sure.
243
+ CACHE_MISS = 2;
244
+ // The workflow produced results inconsistent with history.
245
+ NONDETERMINISM = 3;
246
+ // The lang side completed the workflow activation with a failure.
247
+ LANG_FAIL = 4;
248
+ // The lang side explicitly requested this workflow be evicted.
249
+ LANG_REQUESTED = 5;
250
+ // The workflow task we tried to respond to didn't exist. The workflow might have already
251
+ // finished, or the WFT timed out but we didn't learn about that yet.
252
+ TASK_NOT_FOUND = 6;
253
+ // There was new work that must be handled while we attempted to complete the WFT. Ex:
254
+ // a new signal came in while trying to complete the workflow.
255
+ UNHANDLED_COMMAND = 7;
256
+ // There was some fatal error processing the workflow, typically an internal error, but
257
+ // can also happen if then network drops out while paginating. Check message string.
258
+ FATAL = 8;
259
+ }
260
+ EvictionReason reason = 2;
261
+ }