dotnet / orleans

Cloud Native application framework for .NET
https://docs.microsoft.com/dotnet/orleans
MIT License
10.11k stars 2.04k forks source link

Implementing Oneway Grain to Grain Media Streaming with Different Nodes and Silos in the Same Cluster #8875

Open varminth opened 8 months ago

varminth commented 8 months ago

Description:

I'm trying to implement a one-way grain to grain media streaming system using Orleans, where the sender and receiver grains are located on different nodes and silos within the same cluster. The goal is to efficiently stream media data between grains without storing it persistently in the cluster.

Issue:

I'm facing challenges in configuring Orleans to support this scenario. The application uses gRPC endpoints for both nodes, meaning each node has a different gRPC endpoint for clients to get the response data. Specifically, I'm unsure about how to set up the communication between grains on different nodes and silos, ensuring efficient data transfer without unnecessary network overhead.

Questions:

  1. How can I configure Orleans to support one-way media streaming between grains on different nodes and silos, considering the use of different gRPC endpoints for each node?
  2. Are there any best practices or guidelines for implementing such a system in Orleans?
  3. Are there any specific considerations or limitations I should be aware of when implementing this feature?

Additional Context:

I have already implemented a basic grain-to-grain communication within the same node and silo, but I'm struggling to extend this to support communication between grains on different nodes and silos.

Any help or guidance on this would be greatly appreciated!

ledjon-behluli commented 7 months ago

@varminth have you considered memory streams?