Skip to content

IStreamProviderRuntime interface is not accessible to external Stream Providers  #208

@cata

Description

@cata

Currently, IStreamProviderRuntime is an internal interface.
IStreamProviderRuntime and the family of related interfaces expose runtime features essential to implementing new stream providers that are not based on, say, the IQueueAdapter interface (but which, naturally, still require runtime support).

However, making IStreamProviderRuntime public would require making a significant number of other interfaces and classes public as well:

  • StreamId
  • IConsistentRingProviderForGrains
  • IGrainRingRangeListener
  • IStreamConsumerExtension
  • IStreamProducerExtension
  • StreamDirectory
  • StreamQueueBalancerType
  • IStreamFilterPredicateWrapper
  • StreamPubSubType
  • IStreamPubSub
  • PubSubSubscriptionState
  • ISystemTarget

I wonder if this is OK - while I think IStreamProviderRuntime is similar in intent to IStorageProviderRuntime, there is a stark contrast in the amount of internals exposed: IStorageProviderRuntime is currently an empty interface.

I understand that the Stream internals are currently being refactored. However, if you think it is acceptable to make IStreamProviderRuntime available to external stream providers in the current form in the meanwhile, I would be more than happy to create a PR with the required changes.
I could certainly use the runtime functionality exposed as a result.

Thanks for open sourcing Orleans - super cool stuff 👍

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions