Skip to content

[Brook] Rebuilt the crate on the Stream service protos, ids and offsets. - #17

Closed
moetemp wants to merge 4 commits into
mainfrom
moe/brook/v3/s1-protos-and-ids
Closed

moetemp wants to merge 4 commits into
mainfrom
moe/brook/v3/s1-protos-and-ids

Conversation

@moetemp

@moetemp moetemp commented Oct 21, 2026

Copy link
Copy Markdown
Owner

What changed?

This PR starts the v3 temporalio-streams crate from the Brook API proposal. It adds the Stream service proto of the proposal and the crate's own extension call protos, built with prost against sdk-rust c4. It also adds the rules every SDK must share: Stream ids, Producer ids, the Redis keys and meta fields, offsets (ms << 20 | seq), epoch keys and the withdrawal rule of a Superseded item.

Why?

The v3 design serves five Stream service operations on Redis, so little of the v2 store layer fits. The shared vectors in testdata/ let the Python, TypeScript and .NET lanes check their id builders and withdraws() against the same files. gen_vectors.py writes them from a second implementation.

How did you test it?

cargo test --workspace checks the Rust rules against the vectors, including the Appendix E withdrawal examples.

  • Unit Tests
  • Staging
  • End to End Tests

The v3 design serves the five Stream service operations on Redis, so the crate starts again from the API proposal's protos. The shared vectors pin the ids, keys, offsets, epochs and the withdrawal rule for every SDK.
Core gives the previous completed task with attempt 0 when it no longer has the attempt, and the rule then missed the failed attempts at c. The buffer call also gets chain_continues, so lang can stop the auto close of a run whose Chain goes on.
@moetemp

moetemp commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

Closing as stale. This layer is folded into the v5 tip, #41, and the upstream review uses a fresh series instead. Plan: https://www.notion.so/4048fc567738814990b7c796ac28fe3f

@moetemp moetemp closed this Oct 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant