Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions docs/best-practices/cost-optimization.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,15 @@ For detailed discussion of this tradeoff, see [How many Activities should I use
[Child Workflows cost 2 Actions](/cloud/actions#workflow) compared to an Activity's 1 Action.
See [Child Workflows documentation](/child-workflows) for detailed comparison of capabilities and use cases.

### Standalone Activities vs a Workflow that runs a single Activity

Starting a [Standalone Activity](/standalone-activity) costs 1 Action.
Running the same single Activity in a wrapper Workflow costs 1 Action for the Activity and 1 Action for the Workflow, not including Activity heartbeats, retries, or other billable [Actions](/cloud/actions#activity).

Use a Workflow when you need multi-step orchestration, human in the loop, signals, timers, updates, queries, or enhanced step-by-step visibility with event history and [replay](/workflow-execution#replay).

Use a Standalone Activity when you need to execute a single Activity function reliably.

### Retry Policies

Each Activity retry counts as one Action.
Expand Down
2 changes: 1 addition & 1 deletion docs/cloud/metrics/openmetrics/metrics-reference.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ These metrics could have high cardinality depending on number of activity types,

:::note Standalone Activities

Standalone Activities are Activity Executions that are started independently, without an associated Workflow. For Activity metrics that include the `temporal_workflow_type` label, Standalone Activities use the placeholder value `"__standalone_activity"`.
[Standalone Activities](/standalone-activity) are Activity Executions that are started independently, without an associated Workflow. For Activity metrics that include the `temporal_workflow_type` label, Standalone Activities use the placeholder value `"__standalone_activity"`.

:::

Expand Down
12 changes: 2 additions & 10 deletions docs/demos/standalone-activities.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,9 @@ tags:
description: An interactive overview of Temporal Standalone Activities.
---

import { StandaloneActivityDemo, ReleaseNoteHeader, SdkGuideLinks } from '@site/src/components';
import { StandaloneActivityDemo, SdkGuideLinks } from '@site/src/components';

<ReleaseNoteHeader
featureName="standaloneActivity"
languages={["Go", "Python", "Java", ".NET", "TypeScript", "Ruby"]}
guidePath="activities/standalone-activities"
>
Available in [Temporal Cloud](/standalone-activity#temporal-cloud-support) and in the [Temporal CLI](/standalone-activity#temporal-cli-support) v1.7.0 or higher with Temporal Server v1.31.0 or higher. Java SDK support is in [Pre-release](/evaluate/development-production-features/release-stages#pre-release).
</ReleaseNoteHeader>

Standalone Activities let you run a single Activity straight from your application without
[Standalone Activities](/standalone-activity) let you run a single Activity straight from your application without
writing a Workflow. Your code uses the Temporal Client to send the request to the Server, the Server durably enqueues the request
for a Worker to pick up, and the result comes back through a handle that your code can wait on or
check later.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,12 @@ This documentation uses source code from the [StandaloneActivity](https://github

Prerequisites:

- **[.NET](https://dotnet.microsoft.com/download)** 8.0+
- **[.NET](https://dotnet.microsoft.com/download)** 8.0+ for the sample project
(the Temporal .NET SDK requires .NET Core 3.1+, Framework 4.6.2+, or Standard 2.0+)

- **Temporal .NET SDK** (v1.12.0 or higher). See the [.NET Quickstart](/develop/dotnet/set-up-your-local-dotnet) for install instructions.
- **Temporal .NET SDK** (v1.19.0 or higher). See the [.NET Quickstart](/develop/dotnet/set-up-your-local-dotnet) for install instructions.

- **Temporal CLI** v1.7.0 or higher. Install with Homebrew, or see the [Temporal CLI install guide](/cli/setup-cli) for other platforms. Verify the installation with `temporal --version`.
- **Temporal CLI** v1.9.0 or higher. Install with Homebrew, or see the [Temporal CLI install guide](/cli/setup-cli) for other platforms. Verify the installation with `temporal --version`.

Start the Temporal development server with `temporal server start-dev`.

Expand Down
22 changes: 14 additions & 8 deletions docs/develop/dotnet/activities/standalone-activities.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,8 @@ tags:
description: Execute Activities independently without a Workflow using the Temporal .NET SDK.
---

import { ReleaseNoteHeader } from '@site/src/components';

<ReleaseNoteHeader
featureName="standaloneActivity"
/>

Standalone Activities are Activities that run independently, without being orchestrated by a
Workflow. Instead of starting an Activity from within a Workflow Definition, you start a Standalone
[Standalone Activities](/standalone-activity) are Activities that run independently, without being orchestrated
by a Workflow. Instead of starting an Activity from within a Workflow Definition, you start a Standalone
Activity directly from a Temporal Client.

The way you write the Activity and register it with a Worker is identical to [Workflow
Expand All @@ -33,6 +27,7 @@ New to Standalone Activities? Start with the [Standalone Activities Quickstart](

This page covers the following:

- [Prerequisites](#prerequisites)
- [Start a Standalone Activity without waiting for the result](#start-activity)
- [Get a handle to an existing Standalone Activity](#get-activity-handle)
- [Wait for the result of a Standalone Activity](#get-activity-result)
Expand All @@ -46,6 +41,17 @@ This documentation uses source code from the [StandaloneActivity](https://github

:::

## Prerequisites {/* #prerequisites */}

Standalone Activities require:

- **.NET** 8.0+ for the sample project (the Temporal .NET SDK requires .NET Core 3.1+, Framework 4.6.2+, or Standard 2.0+)
- **Temporal .NET SDK** v1.19.0 or higher
- **[Temporal CLI](/cli/setup-cli)** v1.9.0 or higher

The [Standalone Activities Quickstart](/develop/dotnet/activities/standalone-activities-quickstart)
walks through installing these.

## Start a Standalone Activity without waiting for the result {/* #start-activity */}

Use
Expand Down
2 changes: 1 addition & 1 deletion docs/develop/go/activities/basics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ func (a *YourActivityObject) YourActivityDefinition(ctx context.Context, param Y
}
```

### How to develop Activity Parameters {/* #activity-parameters */}
### Activity Parameters {/* #activity-parameters */}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] <Temporal.Headings> reported by reviewdog 🐶
'Activity Parameters ****************************' should use sentence-style capitalization.


There is no explicit limit to the total number of parameters that an [Activity Definition](/activity-definition) may support.
However, there is a limit to the total size of the data that ends up encoded into a gRPC message Payload.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,11 +50,11 @@ This documentation uses source code from the

Prerequisites:

- **[Go](https://go.dev/dl/)** 1.22+
- **[Go](https://go.dev/dl/)** 1.24+

- **[Temporal Go SDK](/develop/go/set-up-your-local-go#install-the-temporal-go-sdk)** (v1.41.0 or higher)
- **[Temporal Go SDK](/develop/go/set-up-your-local-go#install-the-temporal-go-sdk)** (v1.49.0 or higher)

- **Temporal CLI** v1.7.0 or higher. Install with Homebrew, or see the [Temporal CLI install guide](/cli/setup-cli) for other platforms. Verify the installation with `temporal --version`.
- **Temporal CLI** v1.9.0 or higher. Install with Homebrew, or see the [Temporal CLI install guide](/cli/setup-cli) for other platforms. Verify the installation with `temporal --version`.

Start the Temporal development server with `temporal server start-dev`.

Expand Down
25 changes: 16 additions & 9 deletions docs/develop/go/activities/standalone-activities.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,10 @@ tags:
description: Execute Activities independently without a Workflow using the Temporal Go SDK.
---

import { ReleaseNoteHeader } from '@site/src/components';

<ReleaseNoteHeader
featureName="standaloneActivity"
/>

Standalone Activities are Activity Executions that run independently, without being orchestrated by a Workflow. Instead
of starting an Activity from within a Workflow Definition using `workflow.ExecuteActivity()`, you start a Standalone
Activity directly from a Temporal Client using `client.ExecuteActivity()`.
[Standalone Activities](/standalone-activity) are Activity Executions that run independently, without being
orchestrated by a Workflow. Instead of starting an Activity from within a Workflow Definition using
`workflow.ExecuteActivity()`, you start a Standalone Activity directly from a Temporal Client using
`client.ExecuteActivity()`.

The Activity definition and Worker registration are identical to regular Activities, and only the execution path
differs.
Expand All @@ -32,6 +27,7 @@ New to Standalone Activities? Start with the [Standalone Activities Quickstart](

This page covers the following:

- [Prerequisites](#prerequisites)
- [Get the result of a Standalone Activity](#get-activity-result)
- [Get a handle to an existing Standalone Activity](#get-activity-handle)
- [List Standalone Activities](#list-activities)
Expand All @@ -45,6 +41,17 @@ This documentation uses source code from the

:::

## Prerequisites {/* #prerequisites */}

Standalone Activities require:

- **Go** 1.24+
- **Temporal Go SDK** v1.49.0 or higher
- **[Temporal CLI](/cli/setup-cli)** v1.9.0 or higher

The [Standalone Activities Quickstart](/develop/go/activities/standalone-activities-quickstart)
walks through installing these.

## Get the result of a Standalone Activity {/* #get-activity-result */}

Use `ActivityHandle.Get()` to block until the Activity completes and retrieve its result. This is analogous to calling
Expand Down
2 changes: 1 addition & 1 deletion docs/develop/java/activities/basics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ An Activity implementation is a Java class that implements an Activity annotated
}
```

## Define Activity parameters {/* #activity-parameters */}
## Activity parameters {/* #activity-parameters */}

There is no explicit limit to the total number of parameters that an [Activity Definition](/activity-definition) may support.
However, there is a limit to the total size of the data that ends up encoded into a gRPC message Payload.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,10 @@ Prerequisites:

- **Java** 8+

- **Temporal Java SDK** (v1.35.0 or higher). See the [Java Quickstart](/develop/java/set-up-your-local-java) for
- **Temporal Java SDK** (v1.39.0 or higher). See the [Java Quickstart](/develop/java/set-up-your-local-java) for
install instructions.

- **Temporal CLI** v1.7.0 or higher. Install with Homebrew, or see the [Temporal CLI install guide](/cli/setup-cli) for other platforms. Verify the installation with `temporal --version`.
- **Temporal CLI** v1.9.0 or higher. Install with Homebrew, or see the [Temporal CLI install guide](/cli/setup-cli) for other platforms. Verify the installation with `temporal --version`.

Start the Temporal development server with `temporal server start-dev`.

Expand Down
18 changes: 12 additions & 6 deletions docs/develop/java/activities/standalone-activities.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,6 @@ tags:
description: Execute Activities independently without a Workflow using the Temporal Java SDK.
---

import { ReleaseNoteHeader } from '@site/src/components';

<ReleaseNoteHeader
featureName="standaloneActivity"
/>

[Standalone Activities](/standalone-activity) are Activities that run independently, without being orchestrated by a
Workflow. Instead of starting an Activity from within a Workflow Definition, you start a Standalone
Activity directly from a Temporal Client using `ActivityClient`.
Expand All @@ -33,6 +27,7 @@ New to Standalone Activities? Start with the [Standalone Activities Quickstart](

This page covers the following:

- [Prerequisites](#prerequisites)
- [Start a Standalone Activity without waiting for the result](#start-activity)
- [Get a handle to an existing Standalone Activity](#get-activity-handle)
- [Wait for the result of a Standalone Activity](#get-activity-result)
Expand All @@ -48,6 +43,17 @@ sample.

:::

## Prerequisites {/* #prerequisites */}

Standalone Activities require:

- **Java** 8+
- **Temporal Java SDK** v1.39.0 or higher
- **[Temporal CLI](/cli/setup-cli)** v1.9.0 or higher

The [Standalone Activities Quickstart](/develop/java/activities/standalone-activities-quickstart)
walks through installing these.

## Start a Standalone Activity without waiting for the result {/* #start-activity */}

Starting a Standalone Activity means sending a request to the Temporal Server to durably enqueue
Expand Down
2 changes: 1 addition & 1 deletion docs/develop/php/activities/basics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ interface FileProcessingActivities
}
```

### How to develop Activity Parameters {/* #activity-parameters */}
### Activity Parameters {/* #activity-parameters */}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] <Temporal.Headings> reported by reviewdog 🐶
'Activity Parameters ****************************' should use sentence-style capitalization.


There is no explicit limit to the total number of parameters that an [Activity Definition](/activity-definition) may support.
However, there is a limit to the total size of the data that ends up encoded into a gRPC message Payload.
Expand Down
2 changes: 1 addition & 1 deletion docs/develop/python/activities/basics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ async def your_activity(input: YourParams) -> str:
return f"{input.greeting}, {input.name}!"
```

### Develop Activity Parameters {/* #activity-parameters */}
### Activity Parameters {/* #activity-parameters */}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] <Temporal.Headings> reported by reviewdog 🐶
'Activity Parameters ****************************' should use sentence-style capitalization.


There is no explicit limit to the total number of parameters that an [Activity Definition](/activity-definition) may
support. However, there is a limit to the total size of the data that ends up encoded into a gRPC message Payload.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,13 @@ This documentation uses source code from the [hello_standalone_activity](https:/

Prerequisites:

- **Python 3.9+**
- **Python 3.10+**

- **[uv](https://docs.astral.sh/uv/)** - Python package manager. Install with Homebrew, or see the [uv installation guide](https://docs.astral.sh/uv/getting-started/installation/) for other platforms.

- **Temporal Python SDK** (v1.23.0 or higher)
- **Temporal Python SDK** (v1.33.0 or higher)

- **Temporal CLI** v1.7.0 or higher. Install with Homebrew, or see the [Temporal CLI install guide](/cli/setup-cli) for other platforms. Verify the installation with `temporal --version`.
- **Temporal CLI** v1.9.0 or higher. Install with Homebrew, or see the [Temporal CLI install guide](/cli/setup-cli) for other platforms. Verify the installation with `temporal --version`.

Start the Temporal development server with `temporal server start-dev`.

Expand Down
22 changes: 14 additions & 8 deletions docs/develop/python/activities/standalone-activities.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,8 @@ tags:
description: Execute Activities independently without a Workflow using the Temporal Python SDK.
---

import { ReleaseNoteHeader } from '@site/src/components';

<ReleaseNoteHeader
featureName="standaloneActivity"
/>

Standalone Activities are Activities that run independently, without being orchestrated by a
Workflow. Instead of starting an Activity from within a Workflow Definition, you start a Standalone
[Standalone Activities](/standalone-activity) are Activities that run independently, without being orchestrated
by a Workflow. Instead of starting an Activity from within a Workflow Definition, you start a Standalone
Activity directly from a Temporal Client.

The way you write the Activity and register it with a Worker is identical to [Workflow
Expand All @@ -33,6 +27,7 @@ New to Standalone Activities? Start with the [Standalone Activities Quickstart](

This page covers the following:

- [Prerequisites](#prerequisites)
- [Start a Standalone Activity without waiting for the result](#start-activity)
- [Get a handle to an existing Standalone Activity](#get-activity-handle)
- [Wait for the result of a Standalone Activity](#get-activity-result)
Expand All @@ -46,6 +41,17 @@ This documentation uses source code from the [hello_standalone_activity](https:/

:::

## Prerequisites {/* #prerequisites */}

Standalone Activities require:

- **Python** 3.10+
- **Temporal Python SDK** v1.33.0 or higher
- **[Temporal CLI](/cli/setup-cli)** v1.9.0 or higher

The [Standalone Activities Quickstart](/develop/python/activities/standalone-activities-quickstart)
walks through installing these.

## Start a Standalone Activity without waiting for the result {/* #start-activity */}

Starting a Standalone Activity means sending a request to the Temporal Server to durably enqueue
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,10 @@ Prerequisites:

- **Ruby** 3.3+

- **Temporal Ruby SDK** (v1.5.0 or higher). See the [Ruby Quickstart](/develop/ruby/set-up-local-ruby) for
- **Temporal Ruby SDK** (v1.8.0 or higher). See the [Ruby Quickstart](/develop/ruby/set-up-local-ruby) for
install instructions.

- **Temporal CLI** v1.7.0 or higher. Install with Homebrew, or see the [Temporal CLI install guide](/cli/setup-cli) for other platforms. Verify the installation with `temporal --version`.
- **Temporal CLI** v1.9.0 or higher. Install with Homebrew, or see the [Temporal CLI install guide](/cli/setup-cli) for other platforms. Verify the installation with `temporal --version`.

Start the Temporal development server with `temporal server start-dev`.

Expand Down
20 changes: 14 additions & 6 deletions docs/develop/ruby/activities/standalone-activities.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,8 @@ tags:
description: Execute Activities independently without a Workflow using the Temporal Ruby SDK.
---

import { ReleaseNoteHeader } from '@site/src/components';

<ReleaseNoteHeader featureName="standaloneActivity" />

Standalone Activities are Activities that run independently, without being orchestrated by a
Workflow. Instead of starting an Activity from within a Workflow Definition, you start a Standalone
[Standalone Activities](/standalone-activity) are Activities that run independently, without being orchestrated
by a Workflow. Instead of starting an Activity from within a Workflow Definition, you start a Standalone
Activity directly from a [`Temporalio::Client`](https://ruby.temporal.io/Temporalio/Client.html).

The way you write the Activity and register it with a Worker is identical to [Workflow
Expand All @@ -31,6 +27,7 @@ New to Standalone Activities? Start with the [Standalone Activities Quickstart](

This page covers the following:

- [Prerequisites](#prerequisites)
- [Start a Standalone Activity without waiting for the result](#start-activity)
- [Get a handle to an existing Standalone Activity](#get-activity-handle)
- [Wait for the result of a Standalone Activity](#get-activity-result)
Expand All @@ -46,6 +43,17 @@ sample.

:::

## Prerequisites {/* #prerequisites */}

Standalone Activities require:

- **Ruby** 3.3+
- **Temporal Ruby SDK** v1.8.0 or higher
- **[Temporal CLI](/cli/setup-cli)** v1.9.0 or higher

The [Standalone Activities Quickstart](/develop/ruby/activities/standalone-activities-quickstart)
walks through installing these.

## Start a Standalone Activity without waiting for the result {/* #start-activity */}

Starting a Standalone Activity means sending a request to the Temporal Server to durably enqueue
Expand Down
2 changes: 1 addition & 1 deletion docs/develop/rust/activities/basics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ impl GreetingActivities {
}
```

### Define Activity parameters {/* #activity-parameters */}
### Activity parameters {/* #activity-parameters */}

There is a limit of 6 parameters that an [Activity Definition](/activity-definition) may support. There is also a limit to the total size of the data that ends up encoded into a gRPC message Payload.

Expand Down
2 changes: 1 addition & 1 deletion docs/develop/typescript/activities/basics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ export async function greet(name: string): Promise<string> {
```
<!--SNIPEND-->

## How to develop Activity Parameters {/* #activity-parameters */}
## Activity Parameters {/* #activity-parameters */}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] <Temporal.Headings> reported by reviewdog 🐶
'Activity Parameters ****************************' should use sentence-style capitalization.


There is no explicit limit to the total number of parameters that an [Activity Definition](/activity-definition) may
support. However, there is a limit to the total size of the data that ends up encoded into a gRPC message Payload.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,11 @@ This documentation uses source code from the [standalone-activity](https://githu

Prerequisites:

- **Temporal TypeScript SDK** (v1.17.0 or higher). See the [TypeScript Quickstart](/develop/typescript/set-up-your-local-typescript) for install instructions.
- **[Node.js](https://nodejs.org/en/download/)** 20+

- **Temporal CLI** v1.7.0 or higher. Install with Homebrew, or see the [Temporal CLI install guide](/cli/setup-cli) for other platforms. Verify the installation with `temporal --version`.
- **Temporal TypeScript SDK** (v1.24.0 or higher). See the [TypeScript Quickstart](/develop/typescript/set-up-your-local-typescript) for install instructions.

- **Temporal CLI** v1.9.0 or higher. Install with Homebrew, or see the [Temporal CLI install guide](/cli/setup-cli) for other platforms. Verify the installation with `temporal --version`.

Start the Temporal development server with `temporal server start-dev`.

Expand Down
Loading
Loading