Add typed workflow stream subscriptions - #3080
Open
brianstrauch wants to merge 1 commit into
Open
brianstrauch wants to merge 1 commit into
brianstrauch wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed?
Class<T>andTypesubscription overloads that decode items before delivery.Payloadsubscriptions as an escape hatch and retained raw payload access on typed items.publishPayloadmethods.Why?
Transfer Type Converters need the requested language-level type when decoding. Moving that type information into subscriptions avoids requiring consumers to reconstruct an internal codec-free data converter or use a Java-specific
decodeItemhelper.Breaking changes?
This changes the experimental workflow streams API introduced by the base PR. The stream item, subscription, listener, and topic handle types are now generic, and the temporary
WorkflowStreamClient.decodeItemAPI is removed. Existing raw method descriptors remain compatible through type erasure.Server PR
None.
Testing
./gradlew --offline :temporal-workflowstreams:spotlessApply :temporal-workflowstreams:test./gradlew --offline :temporal-workflowstreams:javadoc