Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog/added/linking-lynx.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Experimental `temporalio.contrib.streams`: a producer writes `LINK` records with `link()` and `join()` to name a child Workflow's stream, and `StreamHandle.follow()` reads a stream and every stream its links open in one order, from client or Activity code. Each batch end gives a `FollowPosition` that resumes every open link with no loss and no repeat.
5 changes: 5 additions & 0 deletions scripts/gen_protos.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ def find_streams_proto_dir() -> Path:


streams_proto_dir = find_streams_proto_dir()
# The stream API that the crate carries until it lands upstream. Core's api_upstream does not have
# it, so its modules go into temporalio.api from here.
streams_api_proto_dir = streams_proto_dir / "api_stream"

# Exclude testsrv dependencies protos
proto_paths = [
Expand All @@ -58,6 +61,7 @@ def find_streams_proto_dir() -> Path:
]
# The crate's api_include copy is left out, since api_upstream generates those modules.
proto_paths.extend((streams_proto_dir / "temporal").glob("**/*.proto"))
proto_paths.extend(streams_api_proto_dir.glob("**/*.proto"))
proto_paths.extend(test_proto_dir.glob("**/*.proto"))
proto_paths.extend(additional_proto_dir.glob("**/*.proto"))

Expand Down Expand Up @@ -216,6 +220,7 @@ def generate_protos(output_dir: Path):
sys.executable,
"-mgrpc_tools.protoc",
f"--proto_path={api_proto_dir}",
f"--proto_path={streams_api_proto_dir}",
f"--proto_path={api_cloud_proto_dir}",
f"--proto_path={core_proto_dir}",
f"--proto_path={testsrv_proto_dir}",
Expand Down
2 changes: 2 additions & 0 deletions temporalio/api/enums/v1/__init__.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

35 changes: 35 additions & 0 deletions temporalio/api/enums/v1/stream_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

77 changes: 77 additions & 0 deletions temporalio/api/enums/v1/stream_pb2.pyi

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Empty file.
5 changes: 5 additions & 0 deletions temporalio/api/stream/v1/__init__.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

43 changes: 43 additions & 0 deletions temporalio/api/stream/v1/message_pb2.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

75 changes: 75 additions & 0 deletions temporalio/api/stream/v1/message_pb2.pyi

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion temporalio/bridge/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion temporalio/bridge/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ url = "2.2"
# makes it use the submodule's crates, so the bridge sees one `Connection` type.
[dependencies.temporalio-streams]
git = "https://github.com/moetemp/sdk-streams"
rev = "7efd5ad9fb0ba72f14ab60676440346bf1e62092"
rev = "dc5d8bfa9b734a6b8fc7f76b2f97344306ea8427"
default-features = false
features = ["envconfig", "redis"]

Expand Down
10 changes: 10 additions & 0 deletions temporalio/bridge/proto/streams/__init__.py

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading