Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
17b806b
standalone activity to ga release header
jsundai Sep 9, 2026
126f761
drop Temporal Cloud public preview
jsundai Sep 9, 2026
e710f0c
Update version requirement for Standalone Activities
jsundai Sep 9, 2026
245f042
standalone activities GA docs
prasek Sep 10, 2026
133d03f
Fix broken link/anchors, stale CLI version, and minor nits from review
Duncanma Sep 11, 2026
93d1d8e
Add missing Temporal.Headings exceptions for Activity Operations terms
Duncanma Sep 11, 2026
8ccb53d
remove broken links
jsundai Sep 11, 2026
a1b4563
Merge branch 'main' into standalone-activities-ga
jsundai Sep 11, 2026
0770a78
update CLI and SDK version prereqs
prasek Sep 11, 2026
8e3aa28
bump SDK versions
prasek Sep 11, 2026
b486873
Clean up Activity docs
dandavison Sep 11, 2026
e783ebd
bump language min versions
prasek Sep 11, 2026
8d6edb5
Reinstate accidentally deleted sentence
dandavison Sep 11, 2026
cae490f
update activity descriptions and tags
prasek Sep 11, 2026
d60fba8
Fix Standalone Activity sample code that fails when run
dandavison Sep 14, 2026
54d8870
bump min CLI and SDK versions
prasek Sep 14, 2026
4c4343e
fix links
jsundai Sep 14, 2026
7ceb41b
break up activity operations page, small edits, heading levels
jsundai Sep 14, 2026
40a8936
ID
jsundai Sep 14, 2026
dfe37e4
Merge remote-tracking branch 'origin/main' into standalone-activities-ga
Copilot Sep 14, 2026
0a84f0c
fix links
jsundai Sep 15, 2026
b2a0b7e
Merge branch 'main' into standalone-activities-ga
jsundai Sep 15, 2026
fa1bacf
resolving comments
jsundai Sep 15, 2026
04b52b0
Correct 'Id' to 'ID' in glossary terms
jsundai Sep 15, 2026
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
10 changes: 1 addition & 9 deletions docs/demos/standalone-activities.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,7 @@ tags:
description: An interactive overview of Temporal Standalone Activities.
---

import { StandaloneActivityDemo, ReleaseNoteHeader, 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/product-release-stages#pre-release).
</ReleaseNoteHeader>
import { StandaloneActivityDemo, SdkGuideLinks } from '@site/src/components';

Standalone Activities 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
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.1 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.1 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 */}

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.1 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 Expand Up @@ -191,8 +191,8 @@ func main() {
defer c.Close()

activityOptions := client.StartActivityOptions{
ID: "standalone_activity_helloworld_ActivityID",
TaskQueue: "standalone-activity-helloworld",
ID: "standalone_activity_helloworld_ActivityID",
TaskQueue: "standalone-activity-helloworld",
ScheduleToCloseTimeout: 10 * time.Second,
}

Expand Down
6 changes: 0 additions & 6 deletions docs/develop/go/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 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()`.
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.1 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 Expand Up @@ -200,7 +200,7 @@ String result = client.execute("ComposeGreeting", String.class, options, "Hello"
{`./gradlew -q execute -PmainClass=io.temporal.samples.standaloneactivities.ExecuteActivity`}
</CodeSnippet>
<CodeSnippet language="bash">
{`./temporal activity execute \\
{`temporal activity execute \\
--type ComposeGreeting \\
--activity-id standalone-activity-id \\
--task-queue standalone-activity-task-queue \\
Expand Down
6 changes: 0 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 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 */}

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 */}

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.1 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.1 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.9.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.1 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.9.0 or higher
- **[Temporal CLI](/cli/setup-cli)** v1.9.1 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 */}

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.1 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 Expand Up @@ -125,7 +127,7 @@ async function run() {
try {
const worker = await Worker.create({
connection,
namespace: 'default',
namespace: config.namespace ?? 'default',
taskQueue: 'hello-standalone-activities',
activities,
});
Expand Down Expand Up @@ -193,7 +195,7 @@ import { nanoid } from 'nanoid';

const config = loadClientConnectConfig();
const connection = await Connection.connect(config.connectionOptions);
const client = new Client({ connection });
const client = new Client({ connection, namespace: config.namespace });

const activitiesClient = client.activity.typed<typeof activities>();`}
</CodeSnippet>
Expand Down
Loading