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, features, slides and discussion.
- Message-based API with zero performance overhead
- Custom F# DSL and bindings (DU, Pattern Matching, Tasks)
- 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)
To install client Orleankka library via NuGet, run this command in NuGet package manager console:
PM> Install-Package Orleankka
For server-side library:
PM> Install-Package Orleankka.Runtime
Check out "Getting started" guide: C# , F#.
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.
[inside] | |
---|---|
Orleankka | Core and client lib |
Orleankka.Runtime | Server-side runtime lib |
Orleankka.TestKit | Unit testing kit |
Orleankka.FSharp | F# core and client lib |
Orleankka.FSharp.Runtime | F# server-side runtime lib |
Orleankka.Template | Scaffolding template for dotnet new (F#) |
- Hello, world! [demo]
- "WebScan" [demo]
- TestKit [demo]
- Event Sourcing
- Serialization
- Reentrant messages [rw-x]
- Client-side observers [chat]
- Streams [chat]
- Switchable behaviors
Documentation can be found here.
- Join Gitter chat
- Follow the @Orleankka Twitter account for announcements
Apache 2 License