Skip to content

Commit 13ae23b

Browse files
Add note about replicated actions in actions.mdx (#4182)
* Add note about replicated actions in actions.mdx * small edit --------- Co-authored-by: Lenny Chen <lenny.chen@temporal.io>
1 parent c8d3dd7 commit 13ae23b

1 file changed

Lines changed: 81 additions & 74 deletions

File tree

docs/evaluate/temporal-cloud/actions.mdx

Lines changed: 81 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
id: actions
33
title: Temporal Cloud Actions
44
sidebar_label: Actions
5-
description: Temporal Cloud offers flexible, predictable pricing for Workflows, Activities, Workers, and Storage. Pay for what you use with volume discounts and credit savings.
5+
description:
6+
Temporal Cloud offers flexible, predictable pricing for Workflows, Activities, Workers, and Storage. Pay for what you
7+
use with volume discounts and credit savings.
68
slug: /cloud/actions
79
toc_max_heading_level: 4
810
keywords:
@@ -19,132 +21,137 @@ tags:
1921
- Support
2022
---
2123

22-
Actions track both the progress of a workflow (such as Workflow Start, Schedule Started, Workflow reset) and broader capabilities
23-
enabled by Temporal Cloud.
24+
Actions track both the progress of a workflow (such as Workflow Start, Schedule Started, Workflow reset) and broader
25+
capabilities enabled by Temporal Cloud.
2426

25-
Temporal Cloud Actions are the primary unit of consumption-based pricing for Temporal Cloud.
26-
They track billable operations within the Temporal Cloud Service, such as starting Workflows, recording a Heartbeat, or sending messages.
27+
Temporal Cloud Actions are the primary unit of consumption-based pricing for Temporal Cloud. They track billable
28+
operations within the Temporal Cloud Service, such as starting Workflows, recording a Heartbeat, or sending messages.
2729

2830
The following result in an action on Temporal Cloud:
2931

3032
## Workflows
3133

32-
- **Workflow started**.
33-
Occurs via client start, [Continue-As-New](/workflow-execution/continue-as-new), [Child Workflow](/child-workflows) start.
34-
If a Workflow start fails, an Action is not recorded.
35-
De-duplicated Workflow starts that share a Workflow ID do _not_ count as an Action.
36-
- **Workflow reset**.
37-
Occurs when a [Workflow](/workflows) is reset.
38-
(Actions that occur before a [Reset](/workflow-execution/event#reset) are counted even if they are no longer visible in [Event History](/workflow-execution/event#event-history).)
39-
- **Timer started**.
40-
Includes implicit Timers that are started by a Temporal SDK when timeouts are set, such as `AwaitWithTimeout` in Go or `condition` in TypeScript.
41-
- **Search Attribute upsert requested**.
42-
Occurs for each invocation of `UpsertSearchAttributes` command.
43-
Multiple Search Attributes updated in a single `UpsertSearchAttributes` command count as one Action.
44-
Search Attributes specified during Workflow start are _excluded_ from Action counts.
45-
The `TemporalChangeVersion` Search Attribute, used for Workflow versioning, is also exempt from Action counting.
46-
- **Signal sent**.
47-
An Action occurs for every [Signal](/sending-messages#sending-signals), whether sent from a Client or from a Workflow. Also, one total action occurs for any [Signal-With-Start](/sending-messages#signal-with-start), regardless of whether the Workflow starts.
48-
- **Query received by Worker**.
49-
An Action occurs for every [Query](/sending-messages#sending-queries), including viewing the call stack in the Temporal Cloud UI, which results in a Query behind the scenes.
50-
- **Update received by Worker**.
51-
An Action occurs for every successful [Update](/sending-messages#sending-updates) and every [rejected](/handling-messages#update-validators) Update. This includes [Update-With-Start](/sending-messages#update-with-start), and is in addition to the start Action in the case when the Workflow starts as well.
52-
De-duplicated Updates that share an Update ID do _not_ count as an Action.
53-
- **Side Effect recorded**.
54-
For a mutable [Side Effect](/workflow-execution/event#side-effect), an Action occurs only when the value changes.
55-
- **Workflow Execution Options updated.** An Action occurs for every [Workflow-Execution-Options-Updated](/references/events#workflowexecutionoptionsupdated) event.
56-
This includes attaching a Workflow completion callback or modifying a Workflow versioning override.
34+
- **Workflow started**. Occurs via client start, [Continue-As-New](/workflow-execution/continue-as-new),
35+
[Child Workflow](/child-workflows) start. If a Workflow start fails, an Action is not recorded. De-duplicated Workflow
36+
starts that share a Workflow ID do _not_ count as an Action.
37+
- **Workflow reset**. Occurs when a [Workflow](/workflows) is reset. (Actions that occur before a
38+
[Reset](/workflow-execution/event#reset) are counted even if they are no longer visible in
39+
[Event History](/workflow-execution/event#event-history).)
40+
- **Timer started**. Includes implicit Timers that are started by a Temporal SDK when timeouts are set, such as
41+
`AwaitWithTimeout` in Go or `condition` in TypeScript.
42+
- **Search Attribute upsert requested**. Occurs for each invocation of `UpsertSearchAttributes` command. Multiple Search
43+
Attributes updated in a single `UpsertSearchAttributes` command count as one Action. Search Attributes specified
44+
during Workflow start are _excluded_ from Action counts. The `TemporalChangeVersion` Search Attribute, used for
45+
Workflow versioning, is also exempt from Action counting.
46+
- **Signal sent**. An Action occurs for every [Signal](/sending-messages#sending-signals), whether sent from a Client or
47+
from a Workflow. Also, one total action occurs for any [Signal-With-Start](/sending-messages#signal-with-start),
48+
regardless of whether the Workflow starts.
49+
- **Query received by Worker**. An Action occurs for every [Query](/sending-messages#sending-queries), including viewing
50+
the call stack in the Temporal Cloud UI, which results in a Query behind the scenes.
51+
- **Update received by Worker**. An Action occurs for every successful [Update](/sending-messages#sending-updates) and
52+
every [rejected](/handling-messages#update-validators) Update. This includes
53+
[Update-With-Start](/sending-messages#update-with-start), and is in addition to the start Action in the case when the
54+
Workflow starts as well. De-duplicated Updates that share an Update ID do _not_ count as an Action.
55+
- **Side Effect recorded**. For a mutable [Side Effect](/workflow-execution/event#side-effect), an Action occurs only
56+
when the value changes.
57+
- **Workflow Execution Options updated.** An Action occurs for every
58+
[Workflow-Execution-Options-Updated](/references/events#workflowexecutionoptionsupdated) event. This includes
59+
attaching a Workflow completion callback or modifying a Workflow versioning override.
5760

5861
## Child Workflows
5962

60-
- **Start Child Workflow** and **Child Workflow Execution**.
61-
When the parent Workflow durably records the intent to start a Child Workflow, it results in two Actions,
62-
one for starting the Workflow, and another for the attempted Execution.
63+
- **Start Child Workflow** and **Child Workflow Execution**. When the parent Workflow durably records the intent to
64+
start a Child Workflow, it results in two Actions, one for starting the Workflow, and another for the attempted
65+
Execution.
6366

6467
## Activities
6568

66-
- **Activity started or retried**.
67-
Occurs each time an Activity is started or retried.
68-
- **Local Activity started**.
69-
All [Local Activities](/local-activity) associated with one Workflow Task count as a single Action.
70-
That's because Temporal Cloud counts all [RecordMarkers](/references/commands#recordmarker) from each Workflow Task as one action, and not _N_ actions.
71-
Please note:
69+
- **Activity started or retried**. Occurs each time an Activity is started or retried.
70+
- **Local Activity started**. All [Local Activities](/local-activity) associated with one Workflow Task count as a
71+
single Action. That's because Temporal Cloud counts all [RecordMarkers](/references/commands#recordmarker) from each
72+
Workflow Task as one action, and not _N_ actions. Please note:
7273
- Each additional Workflow Task heartbeat after counts as an additional Action.
7374
- Local Activities retried following a Workflow Task heartbeat count as one Action (capped at 100 Actions).
74-
- **Activity Heartbeat recorded**.
75-
A Heartbeat call from Activity code counts as an Action only if it reaches the [Temporal Server](/temporal-service/temporal-server).
76-
Temporal SDKs throttle [Activity Heartbeats](/encyclopedia/detecting-activity-failures#activity-heartbeat).
77-
The default throttle is 80% of the [Heartbeat Timeout](/encyclopedia/detecting-activity-failures#heartbeat-timeout).
78-
Heartbeats don't apply to Local Activities.
75+
- **Activity Heartbeat recorded**. A Heartbeat call from Activity code counts as an Action only if it reaches the
76+
[Temporal Server](/temporal-service/temporal-server). Temporal SDKs throttle
77+
[Activity Heartbeats](/encyclopedia/detecting-activity-failures#activity-heartbeat). The default throttle is 80% of
78+
the [Heartbeat Timeout](/encyclopedia/detecting-activity-failures#heartbeat-timeout). Heartbeats don't apply to Local
79+
Activities.
7980

8081
## Schedules
8182

82-
[Schedules](/schedule) allows you to schedule a Workflow to start at a particular time.
83-
Each execution of a Schedule accrues three actions:
83+
[Schedules](/schedule) allows you to schedule a Workflow to start at a particular time. Each execution of a Schedule
84+
accrues three actions:
8485

85-
- **Schedule Start**.
86-
This accounts for two actions.
87-
- **Workflow started**.
88-
This is a single action to start the target Workflow.
89-
It includes initial Search Attributes as part of the start request.
86+
- **Schedule Start**. This accounts for two actions.
87+
- **Workflow started**. This is a single action to start the target Workflow. It includes initial Search Attributes as
88+
part of the start request.
9089

9190
## Export
9291

93-
[Workflow History Export](/cloud/export) enables you to export closed Workflow Histories to a cloud storage sink of your choice.
92+
[Workflow History Export](/cloud/export) enables you to export closed Workflow Histories to a cloud storage sink of your
93+
choice.
9494

95-
- **Workflow exported**.
96-
Each Workflow exported accrues a single action.
95+
- **Workflow exported**. Each Workflow exported accrues a single action.
9796
- Excluded from APS calculations.
9897

9998
## Temporal Nexus
10099

101-
- For [Nexus Operation scheduled](/references/events#nexusoperationscheduled), the caller Workflow starting a Nexus Operation results in one Action on the caller Namespace.
102-
- For [Nexus Operation canceled](/references/events#nexusoperationcanceled), the caller Workflow canceling a Nexus Operation results in one Action on the caller Namespace.
103-
- The underlying Temporal primitives (such as Workflows, Activities, and Signals) created by a Nexus Operation handler (directly or indirectly) result in the normal Actions for those primitives billed to the handler’s Namespace.
104-
This includes retries for underlying Temporal primitives like Activities but _not_ for handling the Nexus Operation itself or a retry of the Nexus Operation itself.
100+
- For [Nexus Operation scheduled](/references/events#nexusoperationscheduled), the caller Workflow starting a Nexus
101+
Operation results in one Action on the caller Namespace.
102+
- For [Nexus Operation canceled](/references/events#nexusoperationcanceled), the caller Workflow canceling a Nexus
103+
Operation results in one Action on the caller Namespace.
104+
- The underlying Temporal primitives (such as Workflows, Activities, and Signals) created by a Nexus Operation handler
105+
(directly or indirectly) result in the normal Actions for those primitives billed to the handler’s Namespace. This
106+
includes retries for underlying Temporal primitives like Activities but _not_ for handling the Nexus Operation itself
107+
or a retry of the Nexus Operation itself.
105108

106109
## Capacity
107110

108-
- For Namespace Capacity Temporal Resource Units (TRUs), Actions are generated up to the included hourly allocation for TRUs in any hour where TRUs are set and actual usage falls beneath the included hourly Action allocation.
111+
- For Namespace Capacity Temporal Resource Units (TRUs), Actions are generated up to the included hourly allocation for
112+
TRUs in any hour where TRUs are set and actual usage falls beneath the included hourly Action allocation.
109113
- Excluded from APS calculations.
110114

111-
112115
## Usage
113116

114-
Actions usage is tracked across an account in the [usage dashboard](https://cloud.temporal.io/usage) and is visible to Account Owners, Finance Admin and Global Admin.
115-
For individual namespaces, usage can be seen in the [namespace summary](https://cloud.temporal.io/namespaces/) for a specific namespace.
117+
Actions usage is tracked across an account in the [usage dashboard](https://cloud.temporal.io/usage) and is visible to
118+
Account Owners, Finance Admin and Global Admin. For individual namespaces, usage can be seen in the
119+
[namespace summary](https://cloud.temporal.io/namespaces/) for a specific namespace.
116120

117121
![Temporal Cloud Usage dashboard](/img/cloud/billing/usage-dashboard.png)
118122

119123
## Actions in Workflows
120124

121-
When viewing a Workflow history, events that represent a Billable Action are annotated with the number consumed by the event in
122-
the **Billable Actions** Column. These Actions are summarized at the top of the workflow.
125+
When viewing a Workflow history, events that represent a Billable Action are annotated with the number consumed by the
126+
event in the **Billable Actions** Column. These Actions are summarized at the top of the workflow.
123127

124128
![Temporal Cloud Usage dashboard showing aggregated Billable Actions](/img/cloud/billing/aggregate-billable-actions.png)
125129

126130
![Temporal Cloud Usage dashboard showing individual Billable Actions associated with events](/img/cloud/billing/individual-billable-actions.png)
127131

128-
This Billable Action estimate is useful for projecting the cost of workflows.
129-
For example, if you ran a test workflow that generated 20 Billable Actions and projected that it would be run 100 times
130-
a day for a month, you could anticipate that workflow to generate 20 Actions x 100 runs/day x 30 days = 60,000 Billable Actions per month.
131-
You can also use the Billable Action estimate to help optimize workflows by better understanding your cost drivers.
132+
This Billable Action estimate is useful for projecting the cost of workflows. For example, if you ran a test workflow
133+
that generated 20 Billable Actions and projected that it would be run 100 times a day for a month, you could anticipate
134+
that workflow to generate 20 Actions x 100 runs/day x 30 days = 60,000 Billable Actions per month. You can also use the
135+
Billable Action estimate to help optimize workflows by better understanding your cost drivers.
132136

133137
:::tip Excluded Billable Actions
134138

135-
The Billable Action estimate is an experimental feature and only measures Billable Actions that exist within workflow event histories.
136-
Some billable concepts are not included in these calculations such as:
139+
The Billable Action estimate is an experimental feature and only measures Billable Actions that exist within workflow
140+
event histories. Some billable concepts are not included in these calculations such as:
137141

138142
- Query
139143
- Activity Heartbeats
140144
- Rejected Update Workflow Executions
141145
- Export
142146
- Schedule
147+
- Replicated Actions that occur in a
148+
[Namespace replication](../../cloud/high-availability/index.mdx#high-availability-features-high-availability-features)
143149

144-
Additionally, Workflows with the `TemporalNamespaceDivision` Search Attribute set may not have accurate Billable Action Estimates.
145-
The estimated Billable Actions should only be treated as an estimate.
146-
If billable events exist outside of event history, the Actions count could be higher.
150+
Additionally, Workflows with the `TemporalNamespaceDivision` Search Attribute set may not have accurate Billable Action
151+
Estimates. The estimated Billable Actions should only be treated as an estimate. If billable events exist outside of
152+
event history, the Actions count could be higher.
147153

148154
:::
149155

150-
[Reach out](https://pages.temporal.io/contact-us) to our team for more information or to help size your number of Actions.
156+
[Reach out](https://pages.temporal.io/contact-us) to our team for more information or to help size your number of
157+
Actions.

0 commit comments

Comments
 (0)