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

BogdanBabiy/road-to-orleans

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

road to orleans

Gitter

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).

build & run

  • IDE: build + run (first the cluster, then the client)
  • run-[client/silo]-[docker/local].sh

monitoring

Silo dashboards are available by default on localhost:8080 unless configured otherwise in the code/dockerfile/run-[client/silo]-[docker/local].sh. Additionally, Datadog APM support is illustrated in solution 3b.

code

solutions

solution description docker support clustering clustered silos grains clients *visual studio code support *remote containers support
solution1 One basic silo, no grains. - 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. - 1 1 C# grain 1 - console
solution3a Solution3 + grain persistence. - 1 1 C# grain 1 - console
solution3b Solution3 + datadog APM. - 1 1 C# grain 1 - console
solution4 First in-memory clustering example. Many silos, many clients. 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. in-memory n 1 C# grain interfacing F# library code. n - console
solution6 Solution5 where the cluster is being called from a Web API. 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. in-memory n 1 C# grain interfacing F# library code n - web api
solution8 Solution7 + Persistent Membership Table in DynamoEB, ECS hosting, CloudFormation Template. Dynamo n 1 C# grain interfacing F# library code n - web api

*visual studio code support:

  • [ctrl/cmd]+shift+b: builds selected projects
  • f5: runs selected projects

*remote containers support: ability to develop/build/run/debug code inside containers. This is to support those who just want to quickly pull the repository code and experiment with it with e.g. Visual Studio Code. Code + batteries included.

further reading

to watch

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# 74.5%
  • Shell 15.8%
  • Dockerfile 6.7%
  • F# 3.0%