Repository navigation
Add client-side event stream support for RPC protocols - #862
Merged
Merged
Conversation
kuhe
force-pushed
the
kuhe/feat/event-streams
branch
4 times, most recently
from
October 22, 2026 17:25
92cbc15 to
8aa5693
Compare
kuhe
marked this pull request as ready for review
October 22, 2026 19:32
stobrien89
requested changes
Oct 22, 2026
kuhe
force-pushed
the
kuhe/feat/event-streams
branch
7 times, most recently
from
October 23, 2026 19:10
5fe69fd to
1367b8e
Compare
stobrien89
requested changes
Oct 23, 2026
jonathan343
reviewed
Oct 23, 2026
Contributor
There was a problem hiding this comment.
Do you plan to reuse this model for other cases in the future? If not, maybe we should give it a more specific name
Contributor
Author
There was a problem hiding this comment.
Yes, it's intended to also be a scarecrow that collects model edge cases.
| :param read_buffer_size: The buffer size in bytes to use when reading from streams. | ||
| Defaults to 8192 (8 KB). | ||
| :param trust_store_path: Path to a PEM CA bundle that overrides the default system |
Contributor
There was a problem hiding this comment.
should this work with AWS_CA_BUNDLE? At the AWS layer?
Contributor
Author
There was a problem hiding this comment.
I want to defer/punt this.
The full wiring is complicated by CRT not being the default transport. To select it, a user would have to explicitly instantiate it (at this point no enumerable value is used to indicate its selection), which would preclude the config from instantiating it in conjunction with the env's AWS_CA_BUNDLE.
stobrien89
requested changes
Oct 23, 2026
Write the initial-request through the publisher so it is signed first in the event chain; default the output when initial-response is absent and replay the first event; key Accept off output_stream_member and Content-Type off input_stream_member; add a Simon Says duplex integration test.
Require HTTP/2 per event-stream operation from the protocol's modeled eventStreamHttp (threaded through ProtocolSettings via codegen); the CRT transport negotiates and pools it per request, so one client serves HTTP/1.1 operations and HTTP/2 event streams without configuration.
…d stream cleanup Decide a missing initial-response by inspecting the output schema (required-without-default) instead of a deserialize exception; clear the publisher's pending initial-request only after a successful write; cancel the in-flight request task when event publisher creation fails; forward close() from the prefetched-event stream wrapper to the underlying source.
kuhe
force-pushed
the
kuhe/feat/event-streams
branch
from
October 26, 2026 14:38
90fba3f to
4b97339
Compare
kuhe
force-pushed
the
kuhe/feat/event-streams
branch
from
October 26, 2026 15:52
def966c to
12774e8
Compare
stobrien89
approved these changes
Oct 26, 2026
jonathan343
approved these changes
Oct 26, 2026
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.
This PR adds event-stream support for JSON RPC protocols.
As a necessary prerequisite, it reconfigures the ClientProtocol hierarchy by inserting an abstract RPCClientProtocol base shared among Query, JSON RPC, and RPCv2 families.