Popularity
5.1
Growing
Activity
7.2
-
486
44
78

Code Quality Rank: L5
Programming language: C#
License: Apache License 2.0
Tags: Distributed     Orleans     Messaging     Actor     Concurrency     CQRS    
Latest version: v3.4

Orleankka alternatives and similar packages

Based on the "Distributed Computing" category.
Alternatively, view Orleankka alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Orleankka or a related project?

Add another 'Distributed Computing' Package

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, features, slides and discussion.

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

For server-side library:

PM> Install-Package Orleankka.Runtime

Check out "Getting started" guide

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.

Packages

Package Description
Orleankka Core and client lib
Orleankka.Runtime Server-side runtime lib
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)
  • Serialization
    • ProtoBuf [[see]](Samples/CSharp/Serialization/ProtoBuf)
    • Hyperion [[see]](Samples/CSharp/Serialization/Hyperion)
  • 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

Documentation can be found here.

Community

License

Apache 2 License


*Note that all licence references and agreements mentioned in the Orleankka README section above are relevant to that project's source code only.