temporalio / temporalio/features
Ensure gRPC binary metadata keys are supported by clients
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
For RPC metadata, users need to be able to pass -bin keys that are sent as gRPC binary headers. This is already supported in native gRPC libraries like Go/Java, but not most Core SDKs. Today, Core SDKs assume string values as ascii headers and Tonic fails if this is done with a -bin header.
We need to accept bytes as RPC metadata values and need to update code to have Tonic set those as binary headers on the metadata map for -bin keys.
Per-SDK Tickets
- Go - N/A
- Java - N/A
- Core - https://github.com/temporalio/sdk-core/issues/991
- TypeScript - https://github.com/temporalio/sdk-typescript/issues/1778
- Python - https://github.com/temporalio/sdk-python/issues/1063
- .NET - https://github.com/temporalio/sdk-dotnet/issues/512
- Ruby - https://github.com/temporalio/sdk-ruby/issues/329
- PHP - N/A
- Temporal CLI - N/A since it leans on Go
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 by reading the linked Core SDK issue and the per-SDK tickets for TypeScript, Python, .NET, and Ruby, then compare how each SDK currently handles RPC metadata values. Done means affected SDKs accept byte values for -bin keys and Tonic emits them as binary gRPC headers.
Written by the indexing model from the issue text.
Assessment
- Domain
- backend-api-design, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100