Skal du bygge en distribuert .Net-/C#-applikasjon med høye krav til ytelse og skalerbarhet er Microsoft Orleans-rammeverket noe du bør ta en titt på.
Superenkelt forklart sørger Orleans for en distribuert cache og cachen er i minnet til applikasjonen. Altså ingen nettverkstrafikk for å hente og persistere data.
Noen ganger må likevel data persisteres utenfor applikasjonen. Dette håndterer Orleans for deg og man kan velge ulike måter å persistere på. Orleans håndterer også deling av data på tvers av applikasjoninstanser, "silo" i Orleans-terminologi, og skalering av siloer.
Hovedingrediensen hos Orleans kalles "grains". Et grain kan sees på som å være en klassisk service-klasse og en tilstand. For eksempel kan et Person-grain innholde informasjon (state) om en person og utføre funskjonalitet (behavior) på persondataene (oppdatere adresse).
Ubrukte grains vil Orleans persistere og fjerne fra applikasjonsminnet. Opp- og nedskalering av siloer håndterer Orleans og sørger for at data ikke går tapt. Denne abstraheringen lar utvikleren fokusere på funksjonaliteten.
Online-multiplayerspill med krav til høy ytelse og lav svartid er eksempel på applikasjoner som bruker Orleans.
Det Orleans ikke passer så bra til er batch-lignende operasjoner som aggregering av store mengder data (for eksempel på tvers av grains) og oppgaver som tar lang tid.
Les mer på https://learn.microsoft.com/en-us/dotnet/orleans/overview