temporalio / temporalio/features

Allow payload visitors to visit memo payloads in aggregate

Open
#782 0 comments 0 reactions 1 assignee View on GitHub

@jmaeagle99 is already working on this.

Since Jul 29, 2026.

enhancement
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.