Skip to content

Latest commit

 

History

History
45 lines (33 loc) · 3.05 KB

readme.md

File metadata and controls

45 lines (33 loc) · 3.05 KB

road to orleans

This repository illustrates the road to orleans with practical, real-life examples as .NET solutions. From most basic, to more advanced techniques. The code is written using .NET 5 and was tested on MacOS (Catalina 10.15.7) and, wherever docker is supported, Linux (Alpine 3.12).

As there is a lot of code, and subsequent solutions build on top of what previous solutions defined, all examples are categorized into branches:

  • main - this branch always contains the latest solution
  • solution1, solution2, solution3, etc. - individual examples categorized as independent solutions

build & run

  • IDE: build + run (first the cluster, then the client)
  • docker (where supported): run.sh

monitoring

Silo dashboards are available by default on localhost:8080 unless configured otherwise in the code/dockerfile/run.sh.

code

branch description docker support clustering clustered silos grains clients
solution1 One basic silo, no grains. silo - 1 0 0
solution2 One basic silo, one grain, one console client. - - 1 1 C# grain 1 - console
solution3 One basic silo, one grain, one console client, everything containerized. silo, client - 1 1 C# grain 1 - console
solution4 First in-memory clustering example - many silos, many clients. silo, client in-memory n 1 C# grain n - console
solution5 Solution4 where the grain interfaces F# library code. Additionally, F# unit tests covering the F# library code. silo, client in-memory n 1 C# grain interfacing F# library code. n - console
solution6 Solution5 where the cluster is being called from a Web API. silo, client in-memory n 1 C# grain interfacing F# library code n - web api
solution7 Solution6 + FeatureManagement, dependency injection in grains, unit tests for grains using OrleansTestKit. silo, client in-memory n 1 C# grain interfacing F# library code n - web api

further reading