Skip to content

Commit 6631b64

Browse files
Merge branch 'main' into dependabot/npm_and_yarn/babel/plugin-transform-modules-systemjs-7.29.4
2 parents e5d0cb3 + 968bac0 commit 6631b64

33 files changed

Lines changed: 607 additions & 294 deletions

File tree

docs/cloud/export.mdx

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,102 @@ Exports run hourly, beginning 10 minutes after the hour.
2929
Allow up to 24 hours for a closed Workflow to appear in the exported file.
3030
Delivery is guaranteed at least once.
3131

32+
## What's in the exported data {#exported-data}
33+
34+
Each exported file contains one or more complete Workflow Execution histories serialized as protocol buffers using the [`WorkflowExecutions`](https://github.com/temporalio/api/blob/master/temporal/api/export/v1/message.proto) proto.
35+
36+
Each history is an ordered sequence of events that records everything that happened during a Workflow Execution:
37+
38+
- **Workflow configuration** - Input data, timeouts, Task Queue, retry policies, search attributes, and memo
39+
- **Activity lifecycle** - Each Activity scheduled, started, completed, or failed/timed out, including inputs and results
40+
- **Timers** - Timer starts and fires
41+
- **Signals and Updates** - External Signals received and Update requests handled
42+
- **Child Workflows** - Child Workflow starts and completions
43+
- **Workflow result** - How the Workflow ended (completed, failed, timed out, terminated, canceled, or continued-as-new)
44+
45+
Search attributes in the export use your **user-defined names** (for example, `customerId`), not internal column names.
46+
47+
The export format is **protobuf binary**.
48+
You must deserialize using the [proto schema](https://github.com/temporalio/api/blob/master/temporal/api/export/v1/message.proto) before the data is human-readable.
49+
50+
The following is a simplified JSON representation of what one Workflow Execution looks like after deserialization.
51+
This example shows a Workflow that started, ran one Activity, and completed:
52+
53+
```json
54+
{
55+
"items": [
56+
{
57+
"history": {
58+
"events": [
59+
{
60+
"eventId": "1",
61+
"eventTime": "2025-02-24T18:00:00Z",
62+
"eventType": "EVENT_TYPE_WORKFLOW_EXECUTION_STARTED",
63+
"workflowExecutionStartedEventAttributes": {
64+
"workflowType": { "name": "OrderWorkflow" },
65+
"taskQueue": { "name": "order-processing" },
66+
"input": { "payloads": ["...serialized input..."] },
67+
"workflowExecutionTimeout": "3600s",
68+
"searchAttributes": {
69+
"indexedFields": {
70+
"customerId": { "data": "\"customer-42\"" },
71+
"orderType": { "data": "\"standard\"" }
72+
}
73+
}
74+
}
75+
},
76+
{
77+
"eventId": "2",
78+
"eventTime": "2025-02-24T18:00:00Z",
79+
"eventType": "EVENT_TYPE_WORKFLOW_TASK_SCHEDULED"
80+
},
81+
{
82+
"eventId": "3",
83+
"eventTime": "2025-02-24T18:00:01Z",
84+
"eventType": "EVENT_TYPE_ACTIVITY_TASK_SCHEDULED",
85+
"activityTaskScheduledEventAttributes": {
86+
"activityType": { "name": "ChargeCustomer" },
87+
"taskQueue": { "name": "order-processing" },
88+
"input": { "payloads": ["...serialized input..."] },
89+
"scheduleToCloseTimeout": "300s",
90+
"startToCloseTimeout": "60s"
91+
}
92+
},
93+
{
94+
"eventId": "4",
95+
"eventTime": "2025-02-24T18:00:02Z",
96+
"eventType": "EVENT_TYPE_ACTIVITY_TASK_STARTED"
97+
},
98+
{
99+
"eventId": "5",
100+
"eventTime": "2025-02-24T18:00:03Z",
101+
"eventType": "EVENT_TYPE_ACTIVITY_TASK_COMPLETED",
102+
"activityTaskCompletedEventAttributes": {
103+
"result": { "payloads": ["...serialized result..."] }
104+
}
105+
},
106+
{
107+
"eventId": "6",
108+
"eventTime": "2025-02-24T18:00:03Z",
109+
"eventType": "EVENT_TYPE_WORKFLOW_TASK_COMPLETED"
110+
},
111+
{
112+
"eventId": "7",
113+
"eventTime": "2025-02-24T18:00:03Z",
114+
"eventType": "EVENT_TYPE_WORKFLOW_EXECUTION_COMPLETED",
115+
"workflowExecutionCompletedEventAttributes": {
116+
"result": { "payloads": ["...serialized result..."] }
117+
}
118+
}
119+
]
120+
}
121+
}
122+
]
123+
}
124+
```
125+
126+
The outer `items` array can contain multiple Workflow Executions per file.
127+
Only the key fields are shown above. Actual events include additional fields like `version`, `taskId`, and `workerVersion`.
32128

33129
## Prerequisites {#prerequisites}
34130

docs/cloud/metrics/openmetrics/metrics-reference.mdx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,15 @@ These metrics could have high cardinality depending on number of task queues pre
518518

519519
The approximate number of tasks pending in a task queue. Started Activities are not included in the count as they have been dequeued from the task queue.
520520

521+
:::note Known accuracy limitations
522+
This metric is approximate.
523+
It can overcount because invalid or expired Tasks, like from cancelled, terminated, completed, or timed out Workflows, remain in the count until they reach the head of the queue and are processed and discarded.
524+
525+
It can also reset to zero on an idle Task Queue. If no Worker polls, no new Tasks are added, and no other Task Queue calls occur (such as `DescribeTaskQueue` or `UpdateTaskQueueConfig`) for approximately 5 minutes. The Task Queue is unloaded from memory.
526+
Infrequent metadata updates and database time-to-live settings can also cause this metric to drift at a smaller magnitude.
527+
See [backlog accuracy limitations](/develop/worker-performance#backlog-accuracy-limitations) for details.
528+
:::
529+
521530
| Label | Description |
522531
| ----- | ----- |
523532
| `temporal_task_queue` | The task queue name |

docs/develop/dotnet/set-up.mdx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,11 @@ If everything is working correctly, you should see:
327327

328328

329329
<CallToAction href="https://learn.temporal.io/getting_started/dotnet/first_program_in_dotnet/">
330-
<h3>Next: Run your first Temporal Application</h3>
330+
<h3>Run your first Temporal Application</h3>
331331
<p>Create a basic Workflow and run it with the Temporal .NET SDK</p>
332332
</CallToAction>
333+
334+
<CallToAction href="https://learn.temporal.io/courses/">
335+
<h3>Take a Temporal 101 course</h3>
336+
<p>Learn Temporal concepts and build your first application with a guided course</p>
337+
</CallToAction>

docs/develop/go/set-up.mdx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,11 @@ If everything is working correctly, you should see:
335335
- Workflow Execution details in the [Temporal Web UI](http://localhost:8233)
336336

337337
<CallToAction href="https://learn.temporal.io/getting_started/go/first_program_in_go/">
338-
<h3>Next: Run your first Temporal Application</h3>
338+
<h3>Run your first Temporal Application</h3>
339339
<p>Create a basic Workflow and run it with the Temporal Go SDK</p>
340340
</CallToAction>
341+
342+
<CallToAction href="https://learn.temporal.io/courses/">
343+
<h3>Take a Temporal 101 course</h3>
344+
<p>Learn Temporal concepts and build your first application with a guided course</p>
345+
</CallToAction>

docs/develop/go/workers/serverless-workers/aws-lambda.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ Use the `RunWorker` function to start a Lambda-based Worker.
4141
Pass a `WorkerDeploymentVersion` and a callback that registers your Workflows and Activities.
4242

4343
<!--SNIPSTART go-lambda-worker {"selectedLines": ["1-6", "8-18", "22-30"]}-->
44-
[samples-go/lambda-worker/worker/main.go](https://github.com/temporalio/samples-go/blob/lambda-worker/samples-go/lambda-worker/worker/main.go)
44+
[lambda-worker/worker/main.go](https://github.com/temporalio/samples-go/blob/main/lambda-worker/worker/main.go)
4545
```go
4646
package main
4747

@@ -135,7 +135,7 @@ The underlying metrics and traces are the same ones the Go SDK emits in any envi
135135
For general observability concepts and the full list of available metrics, see [Observability - Go SDK](/develop/go/platform/observability) and the [SDK metrics reference](/references/sdk-metrics).
136136

137137
<!--SNIPSTART go-lambda-worker-->
138-
[samples-go/lambda-worker/worker/main.go](https://github.com/temporalio/samples-go/blob/lambda-worker/samples-go/lambda-worker/worker/main.go)
138+
[lambda-worker/worker/main.go](https://github.com/temporalio/samples-go/blob/main/lambda-worker/worker/main.go)
139139
```go
140140
package main
141141

@@ -182,7 +182,7 @@ You must provide a custom Collector configuration that wires the OTLP receiver t
182182
Bundle the following `otel-collector-config.yaml` in your Lambda deployment package:
183183

184184
<!--SNIPSTART go-lambda-worker-otel-collector-config-->
185-
[samples-go/lambda-worker/otel-collector-config.yaml](https://github.com/temporalio/samples-go/blob/lambda-worker/samples-go/lambda-worker/otel-collector-config.yaml)
185+
[lambda-worker/otel-collector-config.yaml](https://github.com/temporalio/samples-go/blob/main/lambda-worker/otel-collector-config.yaml)
186186
```yaml
187187
receivers:
188188
otlp:

docs/develop/java/set-up.mdx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,6 +489,11 @@ If everything is working correctly, you should see:
489489
- Workflow Execution details in the [Temporal Web UI](http://localhost:8233)
490490

491491
<CallToAction href="https://learn.temporal.io/getting_started/java/first_program_in_java/">
492-
<h3>Next: Run your first Temporal Application</h3>
492+
<h3>Run your first Temporal Application</h3>
493493
<p>Create a basic Workflow and run it with the Temporal Java SDK</p>
494494
</CallToAction>
495+
496+
<CallToAction href="https://learn.temporal.io/courses/">
497+
<h3>Take a Temporal 101 course</h3>
498+
<p>Learn Temporal concepts and build your first application with a guided course</p>
499+
</CallToAction>

docs/develop/php/set-up.mdx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,11 @@ If everything is working correctly, you should see:
453453
- Workflow Execution details in the [Temporal Web UI](http://localhost:8233)
454454

455455
<CallToAction href="https://learn.temporal.io/getting_started/php/hello_world_in_php/">
456-
<h3>Next: Run your first Temporal Application</h3>
456+
<h3>Run your first Temporal Application</h3>
457457
<p>Create a basic Workflow and run it with the Temporal PHP SDK</p>
458458
</CallToAction>
459+
460+
<CallToAction href="https://learn.temporal.io/courses/">
461+
<h3>Take a Temporal 101 course</h3>
462+
<p>Learn Temporal concepts and build your first application with a guided course</p>
463+
</CallToAction>

docs/develop/python/nexus/feature-guide.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ Workflow IDs should typically be business-meaningful IDs and are used to dedupe
230230
A Nexus Operation can only take one input parameter. If you want a Nexus Operation to start a Workflow that takes multiple arguments use the `ctx.start_workflow` method.
231231

232232
<!--SNIPSTART samples-python-nexus-handler-multiargs-->
233-
[nexus_multiple_args/handler/service_handler.py](https://github.com/temporalio/samples-python/blob/lambda-worker/nexus_multiple_args/handler/service_handler.py)
233+
[nexus_multiple_args/handler/service_handler.py](https://github.com/temporalio/samples-python/blob/main/nexus_multiple_args/handler/service_handler.py)
234234
```py
235235
@nexusrpc.handler.service_handler(service=MyNexusService)
236236
class MyNexusServiceHandler:

docs/develop/python/set-up.mdx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,11 @@ If everything is working correctly, you should see:
293293
- Workflow Execution details in the [Temporal Web UI](http://localhost:8233)
294294

295295
<CallToAction href="https://learn.temporal.io/getting_started/python/first_program_in_python/">
296-
<h3>Next: Run your first Temporal Application</h3>
296+
<h3>Run your first Temporal Application</h3>
297297
<p>Create a basic Workflow and run it with the Temporal Python SDK</p>
298298
</CallToAction>
299+
300+
<CallToAction href="https://learn.temporal.io/courses/">
301+
<h3>Take a Temporal 101 course</h3>
302+
<p>Learn Temporal concepts and build your first application with a guided course</p>
303+
</CallToAction>

docs/develop/ruby/set-up.mdx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,11 @@ If everything is working correctly, you should see:
286286
- Workflow Execution details in the [Temporal Web UI](http://localhost:8233)
287287

288288
<CallToAction href="https://learn.temporal.io/getting_started/ruby/first_program_in_ruby/">
289-
<h3>Next: Run your first Temporal Application</h3>
289+
<h3>Run your first Temporal Application</h3>
290290
<p>Create a basic Workflow and run it with the Temporal Ruby SDK</p>
291291
</CallToAction>
292+
293+
<CallToAction href="https://learn.temporal.io/courses/">
294+
<h3>Take a Temporal 101 course</h3>
295+
<p>Learn Temporal concepts and build your first application with a guided course</p>
296+
</CallToAction>

0 commit comments

Comments
 (0)