temporalio / temporalio/features
"RawValue" support for non-converted payloads
Nobody has claimed this yet.
- 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
RawValueclass/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_metadatawhere we still want the response subject to codecs but not to conversion
Per-SDK Tickets
- Go - https://github.com/temporalio/sdk-go/issues/1231
- Java - https://github.com/temporalio/sdk-java/issues/2425
- Core - N/A
- TypeScript - https://github.com/temporalio/sdk-typescript/issues/1629
- Python - Already supported
- .NET - Already supported
- Ruby - Already supported
- PHP - https://github.com/temporalio/sdk-php/issues/574
- Temporal CLI - N/A
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.
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