dotnet / orleans

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

Blazor WebAssembly support #8421

Open lostmsu opened 1 year ago

lostmsu commented 1 year ago

I am starting a decentralized project, and was wondering if it would make sense to use Orleans in it.

The system would consist of a diverse set of "server" nodes running .NET 6 on Windows, and "clients" would be written to run in browser using Blazor and WebAssembly. The server nodes would spin services for the clients. Potentially, clients themselves would spin up some other services for other clients to connect to.

Generally speaking I would connect clients to the closest idle server nodes that match some criteria specified by the client.

Because the clients will run in a web browser, the big question is: does Orleans support Blazor and WebAssembly, and can it be adapted to communicate over web sockets?

ReubenBond commented 1 year ago

Orleans is not intended to be used outside of the cloud (eg, on external clients). We recommend that you create a gateway using HTTP/gRPC/SignalR/etc and call into that from your clients.

lostmsu commented 1 year ago

Hi @ReubenBond can you clarify:

  1. What limits Orleans from running inside Blazor + WebAssembly (if anything)? Is it a lack of abstraction for transport layer and/or security layer?
  2. Re: intended. What makes Orleans unsuitable for use outside of cloud/private data center scenarios?
bxjg1987 commented 1 week ago

Perhaps it's a misunderstanding, I just want to run the orlean client in the blazer webassembly, not the grain.