Repository navigation
Conversation
2 of 3 tasks
Core now keeps one entry per producer in a read state of at most 16 KiB, and caches the owner check per owner rather than per producer attempt.
Only comments and test names changed in Core since the last pin.
2 of 3 tasks
Owner
Author
|
Combined into #239. |
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 pins Core to the in-process stream service and reaches it from Python through a generated stub.
temporalio/bridge/sdk-corepoints at the Brook v2 Core top70f5d3e3(c5c). It has the streams crate with its Redis and memory stores and theStreamService, includingRetireProducer, the 16 KiB read state and the owner check per owner, and no output commit or staging. The generated protos and Core's changelog fragments follow the pin.temporalio/bridge/src/streams.rsis about 60 lines of pyo3. Eachconnect_stream_storecall builds a store from a serializedStreamStoreConfigon the client's connection.scripts/gen_bridge_client.pygenerates a typedStreamServiceintostreams_generated.py, so no stream call is hand-written. A failed call raisesStreamCallFailurewith the parsedStreamFailure.Why?
The store runtime lives in Core now, so every Core-based SDK binds one copy of it (DD-86). Lang reaches it through one generated stub and one call (DD-88).
How did you test it?
Link to a test plan if any -
tests/bridge/test_stream_store.pyruns on the dev server with Core's memory store.