Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

StreamRef and ImplicitStreamSubscription issues #182

Open
Jubast opened this issue Sep 18, 2023 · 1 comment
Open

StreamRef and ImplicitStreamSubscription issues #182

Jubast opened this issue Sep 18, 2023 · 1 comment

Comments

@Jubast
Copy link
Contributor

Jubast commented Sep 18, 2023

In Orleankka 7.0.0 the legacy Orleankka.Legacy.Runtime.Streams (implicit stream subscription) code was removed and there is no alternative to this package

We heavily relied StreamSubscriptionAttribute because it offered regex implicit stream subscriptions, filtering and actor id selection. None of which is currently supported by orleans

In the upgrade attempt we wanted to use the ImplicitStreamSubscriptionAttribute / RegexImplicitStreamSubscriptionAttribute as the upgrade path but this doesn't work with the current StreamRef implementation.
The current StreamRef implementation always uses null as the streamNamespace and the StreamPath.Id as the StreamId.
Orleans implicit stream subscription implementation only supports not null namespaces:
https://github.com/dotnet/orleans/blob/e498ee763fd09198a0af9c95899a4f1ef019e55e/src/Orleans.Streaming/PubSub/ImplicitStreamSubscriberTable.cs#L201C1-L204C10
and has no code that supports filtering by StreamId, currently only filtering by streamNamespace is implemented:
https://github.com/dotnet/orleans/blob/e498ee763fd09198a0af9c95899a4f1ef019e55e/src/Orleans.Streaming/Predicates/StreamSubscriptionAttributes.cs#L14C1-L19C60

What is the correct upgrade path here?
Do you have any ideas how we could achieve what was previously supported by the stream legacy code?
Would it be possible to bring back to life the legacy code if there is no alternative?

@yevhen
Copy link
Member

yevhen commented Oct 14, 2023

This is tough issue. Orleans 7.x broke a lot of internal functionality I was relying on for stream subscriptions. I can extend StreamPath to have namespace and then use it with StreamRef.
If you can make a PR with just tests that showcase broken/missing behavior using Orleans native stream subscriptions I can try fix the implementation for you.

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

No branches or pull requests

2 participants