Conversation
A workflow consumes and produces stream records through bridge commands 31 and 32. Each machine holds a reissued command to its recorded event on replay, and an unnamed append learns its stream name from the first event the server records.
The cases cover each command reaching the server, its round trip through replay, and which reissues replay refuses and which it accepts.
This was referenced Oct 3, 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 the commands a workflow uses to subscribe to a stream and to append records to one.
What changed?
SubscribeStreamandAppendStreamRecordsare bridge commands 31 and 32, each with its own state machine. Neither resolves.Part of AI-198 (epic AI-37).
Why?
The record bodies go to the stream's own log, and History only gets a fixed-size event that names the offsets. That keeps the cost of a batch in History flat. The server resolves the stream's addressing and start position and records the result. A workflow can't look that up without I/O, and a value it carried could differ on replay.
How did you test it?
Link to a test plan if any -
core_tests::streamscovers each command reaching the server, its round trip through replay, the reissues replay refuses and the ones it accepts. The whole Core lib suite passes, the lints and fmt are clean, and both commits build.