dotnet / dotnet/orleans

[Proposal] Provide ASP.NET service providers written in Orleans

Open
#7,774 14 comments 14 reactions 0 assignees View on GitHub
Status: work-in-progress
Dominant language
C#
Stars
10.9k
Forks
2.1k
Avg merge
14h 42m
Merged PRs (30d)
354

Description

[This is a work-in-progress and will evolve a bit]

The ASP.NET developer faces a myriad of challenges the moment their web apps are scaled horizontally. The addition of horizontally-scaled compute layers - hardware or PaaS-based layers - results in additional considerations. By distributing one's application across multiple layers, performance is increased, but so is complexity.

* Session state becomes harder to manage because one never knows which server they'll land on.
* Distributed caching providers.
* Distributed data protection issues (this is a stretch but, maybe Orleans could be appropriate here).

At the moment, we're investigating the idea of shipping a few default implementations of interfaces like `IDistributedCache` ([doc](https://docs.microsoft.com/aspnet/core/performance/caching/distributed?view=aspnetcore-6.0)) or to help with distributed session providers and/or Blazor session state management. Another common scenario is a custom SignalR backplane in which Azure SignalR Service isn't appropriate or an on-premise solution is needed.

## We'd like your input

We're confident there are other scenarios in which ASP.NET developers face issues the moment they enter into a distributed landscape or a cloud-native deployment scenario in which the compute layer could be transient, like a K8S pod. If you've experienced challenges once you scale your ASP.NET app out with these or other cases, we'd be interested in your thoughts, so leave a note down below.

Our goal is to ship, with the .NET 8.0 release, a set of providers for building distributed ASP.NET apps running on distributed compute layers built atop Orleans. So help us figure out which of these scenarios we should tackle in our first wave of including Orleans as a key ingredient to the ASP.NET stack.

Contributor guide

Open the contributing guide

Research direction

No repository files or tests are named. Start with the listed ASP.NET interfaces and scenarios—IDistributedCache, distributed session and data protection, Blazor session state, and SignalR backplanes—and review the discussion for a chosen first-wave scope. Done would require an agreed provider set and implementation plan; this issue asks for input rather than a specific change.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
backend, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.