temporalio / temporalio/features
Allow payload visitors to visit memo payloads in aggregate
@jmaeagle99 is already working on this.
Since Jul 29, 2026.
- Dominant language
- Go
- Stars
- 32
- Forks
- 28
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 7
Description
Is your feature request related to a problem? Please describe.
The payload visitors in the SDK visit each payload of a memo separately such that the visit callback only sees one payload at a time. This doesn't allow transformations or validation to occur at the scope of a memo simultaneously. For example, we would want to check if the entire size of a memo is larger than some threshold and make a decision around that, such as failing a workflow task if the memo is too large for the server.
Describe the solution you'd like
The payload visitors should have an option or callback that allows visiting the payloads of a memo simultaneously. Each language may choose a variation of the solution so long as it meets the requirements of:
- Optionally allowing all payloads of a memo to be visited together
- Allowing the callback to determine if the visit call is for a memo vs some other payload visiting context.
For example, the following is a possible solution for the Go payload visitor and its options. Add a custom callback field named VisitMemo whose type is func(*VisitPayloadsContext, map[string]*common.Payload) (map[string]*common.Payload, error). It is invoked when VisitMemo is not nil, otherwise fallback to visiting each payload individually.
Per-SDK Tickets
- temporalio/sdk-go#2252
- temporalio/sdk-java#2884
- TypeScript -
- Python -
- temporalio/sdk-dotnet#801
- Ruby -
- Rust -
- PHP -
- Temporal CLI -
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.