Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/OrleansContrib/Orleankka
Functional API for Microsoft Orleans http://orleanscontrib.github.io/Orleankka
https://github.com/OrleansContrib/Orleankka
actors cqrs event-sourcing fsm functional orleans
Last synced: 17 days ago
JSON representation
Functional API for Microsoft Orleans http://orleanscontrib.github.io/Orleankka
- Host: GitHub
- URL: https://github.com/OrleansContrib/Orleankka
- Owner: OrleansContrib
- License: apache-2.0
- Created: 2015-01-14T22:31:17.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2024-02-23T22:41:14.000Z (9 months ago)
- Last Synced: 2024-05-16T04:55:15.582Z (6 months ago)
- Topics: actors, cqrs, event-sourcing, fsm, functional, orleans
- Language: C#
- Homepage:
- Size: 12.3 MB
- Stars: 488
- Watchers: 44
- Forks: 76
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-csharp - Orleankka - Orleankka is a functional API for Microsoft Orleans framework. It is highly suitable for scenarios where having composable, uniform communication interface is preferable, such as: CQRS, event-sourcing, re-routing, FSM, etc. Additional API available for F# called Orleankka.FSharp. (Distributed Computing)
- awesome-dotnet-cn - Orleankka - Orleankka 是 Microsoft Orleans 框架的功能性API。它非常适合具有可组合、统一通信接口的场景,如CQRS、事件源(event-sourcing)、 路由重发(re-routin)、FSM等。用于F#的此API叫做 Orleankka.FSharp。 (分布式计算)
- awesome-dotnet - Orleankka - Orleankka is a functional API for Microsoft Orleans framework. It is highly suitable for scenarios where having composable, uniform communication interface is preferable, such as: CQRS, event-sourcing, re-routing, FSM, etc. Additional API avaiable for F# called Orleankka.FSharp. (Distributed Computing)
- awesome-actor - Orleankka - Orleankka is a functional extension for Microsoft Orleans framework. It provides a message-based API similar to Akka/ProtoActor, carefully layered on top of the Orleans (that's what in a name). Orleankka is an excellent choice for use-cases which can benefit from composable, uniform communication interface, such as CQRS, event-sourcing, FSM, etc. (Frameworks, Libraries and Tools / Application Frameworks)
- awesome-dot-dev - Orleankka - Orleankka is a functional API for Microsoft Orleans framework. It is highly suitable for scenarios where having composable, uniform communication interface is preferable, such as: CQRS, event-sourcing, re-routing, FSM, etc. Additional API avaiable for F# called Orleankka.FSharp. (Distributed Computing)
- awsome-dotnet - Orleankka - Orleankka is a functional API for Microsoft Orleans framework. It is highly suitable for scenarios where having composable, uniform communication interface is preferable, such as: CQRS, event-sourcing, re-routing, FSM, etc. Additional API available for F# called Orleankka.FSharp. (Distributed Computing)
- awesome-fsharp - Orleankka ★ 175 ⧗ 5 - Functional API for Orleans Framework. [Apache 2.0] (Actor frameworks)
- awesome-dotnet - Orleankka - Orleankka is a functional API for Microsoft Orleans framework. It is highly suitable for scenarios where having composable, uniform communication interface is preferable, such as: CQRS, event-sourcing, re-routing, FSM, etc. Additional API available for F# called Orleankka.FSharp. (Distributed Computing)
README
![Orleankka Logo](Logo.Wide.jpg)
Orleankka is a functional extension for Microsoft Orleans framework. It provides a message-based API similar to Akka/ProtoActor, carefully layered on top of the Orleans (that's what in a name). Orleankka is an excellent choice for use-cases which can benefit from composable, uniform communication interface, such as CQRS, event-sourcing, FSM, etc.
> References: [intro](https://www.youtube.com/watch?v=07Up88bpl20), [features](https://www.youtube.com/watch?v=FKL-PS8Q9ac), [slides](https://docs.google.com/presentation/d/1brM4SS-uJBRMZs-CdOZoJ0KUgrnPXXwrOXnYgfLL4Nk/edit#slide=id.p4) and [discussion](https://github.com/dotnet/orleans/issues/42).
### Features
+ Message-based API with zero performance overhead
+ Switchable actor behaviors with built-in hierarchical FSM (behaviors)
+ Additional api to simplify programming long-running background tasks (jobs)
+ Poweful actor/proxy middlewares (interceptors)
+ Convenient unit testing kit (stubs, mocks, expectations)### How to install
To install client Orleankka library via NuGet, run this command in NuGet package manager console:
PM> Install-Package Orleankka.Client
For server-side library:
PM> Install-Package Orleankka.Runtime
Check out "Getting started" [guide](http://orleanscontrib.github.io/Orleankka/articles/intro/getting-started-csharp.html)
### Build sources
You will need VS2019 and .NET Core 3.x installed in order to build and open the solution. Clone repository and run the following in CLI from solution's root folder:
PM> Nake.bat
This will restore dependencies and build everything in `debug` mode. Run `Nake.bat` with `-T` switch to see available commands.
On MacOS\Linux distributions use below script to build, package or run tests:
$> ./nake.sh
### Packages
| Package | Description|
| ------- |------------|
| [Orleankka](https://www.nuget.org/packages/Orleankka) | Core abstractions lib
| [Orleankka.Client](https://www.nuget.org/packages/Orleankka.Client) | Client-side lib
| [Orleankka.Runtime](https://www.nuget.org/packages/Orleankka.Runtime/) | Server-side runtime lib
| [Orleankka.TestKit](https://www.nuget.org/packages/Orleankka.TestKit/) | Unit testing kit### Examples
+ Hello, world! [[demo]](Samples/CSharp/HelloWorld)
+ "WebScan" [[demo]](Samples/CSharp/Demo/Demo.App)
+ TestKit [[demo]](Source/CSharp/Demo/Demo.App.Tests)
+ Event Sourcing
+ Idiomatic (CQRS) [[see]](Samples/CSharp/EventSourcing/Idiomatic)
+ Persistence: GetEventStore [[see]](Samples/CSharp/EventSourcing/Persistence/GES)
+ Persistence: Streamstone [[see]](Samples/CSharp/EventSourcing/Persistence/Streamstone)
+ Reentrant messages [[rw-x]](Samples/CSharp/Reentrant)
+ Client-side observers [[chat]](Samples/CSharp/Observers)
+ Streams [[chat]](Samples/CSharp/Streams)
+ Switchable behaviors
+ Basics [[see]](Samples/CSharp/FSM/Lightbulb)
+ Durable FSM with supervision[[see]](Samples/CSharp/FSM/ProcessManager)### Documentation
At present, documentation is undergoing a major overhaul. Please, check the unit tests and examples above to get up-to-date information on API usage.
## Community
+ Join [Gitter](https://gitter.im/OrleansContrib/Orleankka) chat
+ Follow the [@Orleankka](https://twitter.com/Orleankka) Twitter account for announcements## License
Apache 2 License