diff --git a/docs/develop/go/core-application.mdx b/docs/develop/go/core-application.mdx index 2c42b70b1d..3edb8ec4ad 100644 --- a/docs/develop/go/core-application.mdx +++ b/docs/develop/go/core-application.mdx @@ -492,7 +492,7 @@ func (a *YourActivityObject) YourActivityDefinition(ctx context.Context, param Y All data returned from an Activity must be serializable. -There is no explicit limit to the amount of data that can be returned by an Activity, but keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). +Activity return values are subject to payload size limits in Temporal. The default payload size limit is 2MB, and there is a hard limit of 4MB for any gRPC message size in the Event History transaction ([see Cloud limits here](https://docs.temporal.io/cloud/limits#per-message-grpc-limit)). Keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). A Go-based Activity Definition can return either just an `error` or a `customValue, error` combination (same as a Workflow Definition). You may wish to use a `struct` type to hold all custom values, just keep in mind they must all be serializable. diff --git a/docs/develop/java/core-application.mdx b/docs/develop/java/core-application.mdx index c982417b2b..128ba7ae88 100644 --- a/docs/develop/java/core-application.mdx +++ b/docs/develop/java/core-application.mdx @@ -378,7 +378,7 @@ For more details, see [Dynamic Activity Reference](https://www.javadoc.io/doc/io All data returned from an Activity must be serializable. -There is no explicit limit to the amount of data that can be returned by an Activity, but keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). +Activity return values are subject to payload size limits in Temporal. The default payload size limit is 2MB, and there is a hard limit of 4MB for any gRPC message size in the Event History transaction ([see Cloud limits here](https://docs.temporal.io/cloud/limits#per-message-grpc-limit)). Keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). Activity return values must be serializable and deserializable by the provided [`DataConverter`](https://www.javadoc.io/static/io.temporal/temporal-sdk/1.17.0/io/temporal/common/converter/DataConverter.html). diff --git a/docs/develop/php/core-application.mdx b/docs/develop/php/core-application.mdx index 351b107985..835272b0e4 100644 --- a/docs/develop/php/core-application.mdx +++ b/docs/develop/php/core-application.mdx @@ -194,7 +194,7 @@ The default implementation uses a JSON serializer, but an alternative implementa All data returned from an Activity must be serializable. -There is no explicit limit to the amount of data that can be returned by an Activity, but keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). +Activity return values are subject to payload size limits in Temporal. The default payload size limit is 2MB, and there is a hard limit of 4MB for any gRPC message size in the Event History transaction ([see Cloud limits here](https://docs.temporal.io/cloud/limits#per-message-grpc-limit)). Keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). Return values must be serializable to a byte array using the provided [DataConverter](https://github.com/temporalio/sdk-php/blob/master/src/DataConverter/DataConverterInterface.php) interface. The default implementation uses a JSON serializer, but an alternative implementation can be easily configured. diff --git a/docs/develop/python/core-application.mdx b/docs/develop/python/core-application.mdx index 95f15148ba..d4f83092c4 100644 --- a/docs/develop/python/core-application.mdx +++ b/docs/develop/python/core-application.mdx @@ -285,7 +285,7 @@ async def your_activity(input: YourParams) -> str: All data returned from an Activity must be serializable. -There is no explicit limit to the amount of data that can be returned by an Activity, but keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). +Activity return values are subject to payload size limits in Temporal. The default payload size limit is 2MB, and there is a hard limit of 4MB for any gRPC message size in the Event History transaction ([see Cloud limits here](https://docs.temporal.io/cloud/limits#per-message-grpc-limit)). Keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). An Activity Execution can return inputs and other Activity values. diff --git a/docs/develop/typescript/core-application.mdx b/docs/develop/typescript/core-application.mdx index 3b2d797377..9990562104 100644 --- a/docs/develop/typescript/core-application.mdx +++ b/docs/develop/typescript/core-application.mdx @@ -504,7 +504,7 @@ export async function greet(name: string): Promise { All data returned from an Activity must be serializable. -There is no explicit limit to the amount of data that can be returned by an Activity, but keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). +Activity return values are subject to payload size limits in Temporal. The default payload size limit is 2MB, and there is a hard limit of 4MB for any gRPC message size in the Event History transaction ([see Cloud limits here](https://docs.temporal.io/cloud/limits#per-message-grpc-limit)). Keep in mind that all return values are recorded in a [Workflow Execution Event History](/workflow-execution/event#event-history). In TypeScript, the return value is always a Promise.