Skip to content

This repository illustrates the road to orleans with practical, real-life examples. From most basic, to more advanced techniques.

License

Notifications You must be signed in to change notification settings

mereta/road-to-orleans

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

This repository illustrates the road to orleans with practical, real-life examples. From most basic, to more advanced techniques.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 72.9%
  • Shell 17.4%
  • Dockerfile 6.2%
  • F# 3.5%