temporalio / temporalio/features

"RawValue" support for non-converted payloads

Open
#603 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Go
Stars
32
Forks
28
Avg merge
1d 9h
Merged PRs (30d)
7

Description

Describe the solution you'd like

SDKs need to support a payload wrapper called "raw value" that is just a payload but it is passed through the conversion stage (but still applies to codec). Specifically, SDKs need to:

  • Have a RawValue class/wrapper/whatever that only has a single payload in it and nothing else
  • Ignore traditional payload conversion in either direction if this type is in use (needs to be in composite payload converter to ignore so it works even for customized forms, TBD in Go/Java whether codec wrappers need to skip payload converter)
  • If possible (so not Go/Java), expose payload converter without codec to activity context and workflow context so it can be used on these raw values as the activity/workflow author see fit

This is useful for a couple of use cases:

  • Dynamic things (#201) since the activity/workflow author may not know what type they want to deserialize until runtime
  • Built-in queries (#604) like __temporal_workflow_metadata where we still want the response subject to codecs but not to conversion
Per-SDK Tickets

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.

Research direction

Start with the unchecked TypeScript ticket #1629 and PHP ticket #574, then compare them with the completed Go, Java, Python, .NET, and Ruby work listed here. Done means the remaining SDKs support a RawValue wrapper that bypasses conversion while still applying codecs, with the documented context behavior where supported.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, go, java, php, python, ruby, typescript
Domain
api
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.