Repository navigation
Conversation
moetemp
force-pushed
the
moe/brook/review/streams-k8-reads
branch
from
October 27, 2026 07:35
bbe1e40 to
bd7cdf3
Compare
moetemp
force-pushed
the
moe/brook/review/streams-k6-service-writes
branch
2 times, most recently
from
October 27, 2026 08:17
593a974 to
a39dd25
Compare
moetemp
force-pushed
the
moe/brook/review/streams-k8-reads
branch
from
October 27, 2026 08:17
bd7cdf3 to
a428ee2
Compare
moetemp
force-pushed
the
moe/brook/review/streams-k6-service-writes
branch
from
October 27, 2026 16:55
a39dd25 to
550c147
Compare
moetemp
force-pushed
the
moe/brook/review/streams-k8-reads
branch
2 times, most recently
from
October 27, 2026 23:46
08eb55b to
913292f
Compare
moetemp
force-pushed
the
moe/brook/review/streams-k6-service-writes
branch
from
October 27, 2026 23:46
550c147 to
6f26a43
Compare
moetemp
force-pushed
the
moe/brook/review/streams-k6-service-writes
branch
from
October 28, 2026 08:55
6f26a43 to
6b804be
Compare
moetemp
force-pushed
the
moe/brook/review/streams-k8-reads
branch
from
October 28, 2026 08:55
913292f to
04b1a06
Compare
moetemp
force-pushed
the
moe/brook/review/streams-k6-service-writes
branch
from
October 29, 2026 04:06
6b804be to
5ccca2b
Compare
moetemp
force-pushed
the
moe/brook/review/streams-k8-reads
branch
from
October 29, 2026 04:06
04b1a06 to
1970b1f
Compare
moetemp
force-pushed
the
moe/brook/review/streams-k6-service-writes
branch
from
October 29, 2026 08:37
5ccca2b to
f4950ec
Compare
moetemp
force-pushed
the
moe/brook/review/streams-k8-reads
branch
2 times, most recently
from
October 29, 2026 09:17
c454268 to
a42f66d
Compare
moetemp
force-pushed
the
moe/brook/review/streams-k6-service-writes
branch
from
October 29, 2026 09:17
f4950ec to
7a22520
Compare
A read waits for the create and for new Records, and fails on a gap that the Retention left. The service suite that reads back what the writes stored comes here too.
moetemp
force-pushed
the
moe/brook/review/streams-k8-reads
branch
from
October 29, 2026 10:03
a42f66d to
84fb6ca
Compare
The scans test drops default_retention, which K3 removed from the Store trait.
MAX_WAIT stays public, since the native backend reads it.
The service suite keeps K6's case of an append with no sequence before the read cases.
The test closes once with a plain failure and once with an Activity failure whose cause is a cancel. The expiry case sends a negative sequence, since zero takes the next one.
# Conflicts: # crates/streams/src/service.rs # crates/streams/src/testing/service.rs
# Conflicts: # crates/streams/src/service.rs
The read past the end fails as stream_offset_too_high, and each create names its Stream by its handle. The suite keeps one close helper and one Workflow Producer helper.
A read is done when it gives the last item of a closed Stream, and a read with no item left answers at once. A stored item that doesn't decode is corrupt Store data.
A read and a describe carry their StreamRef in ref, as the other requests do.
The review asked to stop representing invalid states. The Producer kind is now a oneof with run_id only in the run-based variants, so a client can't carry a run. A write's task facts and withdraw_run move into RunWithdrawal, which only a run writer sets.
Owner
Author
|
Closed in favor of #228, the combined branch, which has this change. |
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?
This PR serves
ReadRecords, with long polls, last-N reads and byte caps.to_offsetandwake_onlyfail withstream_unsupported, since only the native server serves them.stream_offset_too_high(OUT_OF_RANGE), as after a failover, and the message says what to do. A negative offset isstream_invalid.max_recordscounts items. A Superseded item and the Record after it stay in one page.done, and a waiting read ends withdoneat a close.Depends on #216 (K6), and #218 (K7) is based on it. Review lane is the Rust reviewers.
Part of the Brook review series.
Why?
Reads are about half of the service. The long poll needs the most review time. The Redis read script came with R1, so this PR has no Redis part.
How did you test it?
cargo fmt,cargo clippy -- -D warnings(with and without features),cargo test -p temporalio-streams --all-featuresandcargo docpass at this commit. The read cases also run on Redis, through the Redis crate.