Repository navigation
Conversation
moetemp
force-pushed
the
moe/brook/review/s2-stream-bindings
branch
3 times, most recently
from
October 26, 2026 08:44
3925df2 to
f2a5ec4
Compare
moetemp
force-pushed
the
moe/brook/review/s1-stream-protos
branch
from
October 26, 2026 08:44
235fde0 to
3b5246f
Compare
moetemp
force-pushed
the
moe/brook/review/s2-stream-bindings
branch
from
October 27, 2026 09:07
f2a5ec4 to
ba649e0
Compare
moetemp
force-pushed
the
moe/brook/review/s1-stream-protos
branch
from
October 27, 2026 09:07
3b5246f to
92725de
Compare
moetemp
force-pushed
the
moe/brook/review/s2-stream-bindings
branch
from
October 27, 2026 09:17
ba649e0 to
e1864c4
Compare
No nexgen release has the long-poll, client and client-only features, so the generator installs nexgen at a fork revision. `poe gen-protos` runs it, so `check-protos` checks the bindings for drift.
moetemp
force-pushed
the
moe/brook/review/s1-stream-protos
branch
from
October 28, 2026 01:33
92725de to
7afb312
Compare
moetemp
force-pushed
the
moe/brook/review/s2-stream-bindings
branch
from
October 28, 2026 01:33
e1864c4 to
50537f7
Compare
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 was changed
This PR vendors the Stream service and writer WIT and generates their Python bindings with nexgen, into
temporalio/common/_streams/system/andwriter_system/.writer_system/gets only the client target, since only Activities and clients make writer calls. S4 implements_create_nexus_client.read-recordshas@nexus.poll. The service'siter_read_recordsand the stream handle'siter_readtake the next request fromnext_read_requestintemporalio.nexus.system._support. A read with no wait ends at an empty page that didn't move.publish,read,closeanddescribe, and each request'sstreamis required. A read item is theStreamItemunion ofStreamItemData,StreamItemSupersededandStreamItemClose.poe gen-protosruns the generator, andcheck-protosinstalls the pinned nexgen, so drift fails CI. The Workflow service bindings keep nexgen 0.2.8.IntEnumclasses, as on nexgenmain(temporalio/nexgen#262), with A1's names (StreamProducerKind,StreamCloseStatus,StreamReadStart,ExecutionType).StreamRef.owneris anExecutionmodel. The hand-written code in S3, S5, S7 and S8 passes them.moetemp/nexgenatd70f5f17, the fork chain below on top oftemporalio/nexgen#308,#310,#311,#297,#296and#312. Upstream installs a nexgen release by--versiononce the chain merges.Depends on S1 (#371), K10 (
moetemp/sdk-rust#220),temporalio/nexgen#308,#310,#311,#297,#296and#312, and moetemp/nexgen#54, moetemp/nexgen#55, moetemp/nexgen#71, moetemp/nexgen#60, moetemp/nexgen#69, moetemp/nexgen#73 and moetemp/nexgen#75. No changelog fragment, since S9 has the Streams entry.Part of the Brook review series.
Why?
The Streams API calls the Stream service through generated bindings, as the SDK calls the Workflow service System Nexus operations. They're generated, so they get their own PR, before any hand-written Stream code.
Checklist
gen_stream_service.py --install-nexgenandpoe gen-protos-dockerleave no diff.poe lint,poe gen-docsand the binding tests pass.check-protosincluded, except the arm jobs, since the fork has no arm runners.