Skip to content

Add Transfer Types Spec - #880

Draft
VegetarianOrc wants to merge 3 commits into
mainfrom
amazzeo/transfer-types-spec
Draft

Add Transfer Types Spec#880
VegetarianOrc wants to merge 3 commits into
mainfrom
amazzeo/transfer-types-spec

Conversation

@VegetarianOrc

Copy link
Copy Markdown
Contributor

What was changed

  • Add generated spec based on Python, .NET, and Java prototype behavior for collaborative review

Why?

Checklist

  1. Closes

  2. How was this tested:

  1. Any docs updates needed?

Comment thread features/transfer_types/spec.md Outdated
Comment on lines +7 to +9
## Purpose

This document defines the portable behavior of Temporal transfer type converters. It specifies observable conversion semantics without prescribing SDK-specific APIs, generic type mechanisms, or converter construction strategies.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Purpose
This document defines the portable behavior of Temporal transfer type converters. It specifies observable conversion semantics without prescribing SDK-specific APIs, generic type mechanisms, or converter construction strategies.
## Motivation
Sometimes you have a custom datatype that should be serializable as a payload, but you can't modify the configured data converter to support your type. Transfer types let you work around that by picking a "transfer type" that's already serializable, and associating your datatype with a "transfer type converter" that converts values of your custom type to values of the transfer type and back.

Comment thread features/transfer_types/spec.md Outdated
Comment on lines +13 to +18
- **Model type:** The user-facing type associated with a transfer type converter.
- **Transfer type:** The serializer-facing type produced from a model value.
- **Transfer value:** A value of the transfer type.
- **Payload conversion:** Conversion between an in-memory value and a Temporal `Payload`.
- **Payload codec:** A byte-to-byte transformation applied to a payload, such as encryption or compression.
- **Failure details:** Typed payloads stored in application failures, cancellations, timeout heartbeat details, reset failures, or nested failure causes.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Model type:** The user-facing type associated with a transfer type converter.
- **Transfer type:** The serializer-facing type produced from a model value.
- **Transfer value:** A value of the transfer type.
- **Payload conversion:** Conversion between an in-memory value and a Temporal `Payload`.
- **Payload codec:** A byte-to-byte transformation applied to a payload, such as encryption or compression.
- **Failure details:** Typed payloads stored in application failures, cancellations, timeout heartbeat details, reset failures, or nested failure causes.
- **Model type:** The user-facing type associated with a transfer type converter.
- **Transfer type:** The serializable type produced from a model value.
- **Transfer value:** A value of the transfer type.

Comment thread features/transfer_types/spec.md Outdated
- **Payload codec:** A byte-to-byte transformation applied to a payload, such as encryption or compression.
- **Failure details:** Typed payloads stored in application failures, cancellations, timeout heartbeat details, reset failures, or nested failure causes.

## Normative behavior

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Normative behavior
## Behavior

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants