All Projects → PiotrJustyna → road-to-orleans

PiotrJustyna / road-to-orleans

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

Programming Languages

C#
18002 projects
shell
77523 projects
F#
602 projects
Dockerfile
14818 projects
powershell
5483 projects
lua
6591 projects

Projects that are alternatives of or similar to road-to-orleans

Orleans.CosmosDB
Orleans providers for Azure Cosmos DB
Stars: ✭ 36 (-34.55%)
Mutual labels:  actor-model, orleans, orleans-cluster
Microdot
Microdot: An open source .NET microservices framework
Stars: ✭ 1,222 (+2121.82%)
Mutual labels:  distributed-systems, configuration, orleans
Minecase
Minecraft server based on Orleans
Stars: ✭ 581 (+956.36%)
Mutual labels:  distributed-systems, actor-model, orleans
Orbit
Orbit - Virtual actor framework for building distributed systems
Stars: ✭ 1,585 (+2781.82%)
Mutual labels:  distributed-systems, actor-model, grains
Orleans
Orleans is a cross-platform framework for building distributed applications with .NET
Stars: ✭ 8,131 (+14683.64%)
Mutual labels:  distributed-systems, actor-model, orleans
Orleans.clustering.kubernetes
Orleans Membership provider for Kubernetes
Stars: ✭ 140 (+154.55%)
Mutual labels:  distributed-systems, actor-model, orleans
Stateright
A model checker for implementing distributed systems.
Stars: ✭ 213 (+287.27%)
Mutual labels:  distributed-systems, actor-model
Erleans
Erlang Orleans
Stars: ✭ 239 (+334.55%)
Mutual labels:  distributed-systems, orleans
js-sdk
JavaScript frontend SDK for ConfigCat. ConfigCat is a hosted feature flag service: https://configcat.com. Manage feature toggles across frontend, backend, mobile, desktop apps. Alternative to LaunchDarkly. Management app + feature flag SDKs.
Stars: ✭ 21 (-61.82%)
Mutual labels:  configuration, feature-flags
go-chassis-config
pull and push configs in distributed configuration management service. migrated to go-archaius https://github.com/go-chassis/go-archaius/pull/87
Stars: ✭ 23 (-58.18%)
Mutual labels:  distributed-systems, configuration
Akka
Build highly concurrent, distributed, and resilient message-driven applications on the JVM
Stars: ✭ 11,938 (+21605.45%)
Mutual labels:  distributed-systems, actor-model
tutorial
Tutorials to help you build your first Swim app
Stars: ✭ 27 (-50.91%)
Mutual labels:  distributed-systems, actor-model
ripple
Simple shared surface streaming application
Stars: ✭ 17 (-69.09%)
Mutual labels:  distributed-systems, actor-model
Thespian
Python Actor concurrency library
Stars: ✭ 220 (+300%)
Mutual labels:  distributed-systems, actor-model
Gosiris
An actor framework for Go
Stars: ✭ 222 (+303.64%)
Mutual labels:  distributed-systems, actor-model
Scalardb
Universal transaction manager
Stars: ✭ 178 (+223.64%)
Mutual labels:  distributed-systems, dynamodb
serverless-orleans
A demonstration of local development and debugging + serverless Azure deployment of a Dockerized Orleans application.
Stars: ✭ 21 (-61.82%)
Mutual labels:  actor-model, orleans
gen browser
Transparent bi-directional communication for clients, servers and more
Stars: ✭ 67 (+21.82%)
Mutual labels:  distributed-systems, actor-model
protoactor-go
Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin
Stars: ✭ 4,138 (+7423.64%)
Mutual labels:  distributed-systems, actor-model
traffic
Massively real-time traffic streaming application
Stars: ✭ 25 (-54.55%)
Mutual labels:  distributed-systems, actor-model

road to orleans

Gitter

This repository illustrates the road to orleans with practical, real-life examples such as .NET solutions. From most basic to more advanced techniques. The code is written using .NET 6 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

flowchart TD
Solution1(Solution1: One basic silo, no grains.)
Solution2(Solution2: One basic silo, one grain, one console client.)
Solution3(Solution3: One basic silo, one grain, one console client, <br/>everything containerized.)
Solution3a(Solution3a: Solution3 + grain persistence.)
Solution3b(Solution3b: Solution3 + datadog APM.)
Solution4(Solution4: First in-memory clustering example. <br/>Many silos, many clients.)
Solution5(Solution5: Solution4 where the grain interfaces F# library code. <br/>Additionally, F# unit tests covering the F# library code.)
Solution5a(Solution5a: Solution5 where the host and client are written in F#.)
Solution6(Solution6: Solution5 where the cluster is being called from a Web API.)
Solution7(Solution7: Solution6 + FeatureManagement, dependency injection in grains, <br/>unit tests for grains using OrleansTestKit.)
Solution8(Solution8: Solution7 + Persistent Membership Table in DynamoEB,<br/>ECS hosting, CloudFormation Template.)

Solution1 --> Solution2
Solution2 --> Solution3
Solution3 --> Solution3a
Solution3 --> Solution3b
Solution3 --> Solution4
Solution4 --> Solution5
Solution5 --> Solution5a
Solution5 --> Solution6
Solution6 --> Solution7
Solution7 --> Solution8
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
solution5a Solution5 where the host and client are written in F#. in-memory n 1 F# 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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].