• Stars
    star
    495
  • Rank 88,974 (Top 2 %)
  • Language
    C#
  • License
    Apache License 2.0
  • Created almost 10 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Functional API for Microsoft Orleans http://orleanscontrib.github.io/Orleankka

Orleankka Logo

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.

Terms of use

By using this project or its source code, for any purpose and in any shape or form, you grant your implicit agreement to all the following statements:

  • You condemn Russia and its military aggression against Ukraine
  • You recognize that Russia is an occupant that unlawfully invaded a sovereign state
  • You support Ukraine's territorial integrity, including its claims over temporarily occupied territories of Crimea and Donbas
  • You reject false narratives perpetuated by Russian state propaganda

To learn more about the war and how you can help, click here. Glory to Ukraine! 🇺🇦

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

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 Core abstractions lib
Orleankka.Client Client-side lib
Orleankka.Runtime Server-side runtime lib
Orleankka.TestKit Unit testing kit

Examples

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

License

Apache 2 License

More Repositories

1

OrleansDashboard

📊 A developer dashboard for Microsoft Orleans
C#
709
star
2

SignalR.Orleans

SignalR backend based on Orleans.
C#
291
star
3

DesignPatterns

📐 Design patterns for Project Orleans
250
star
4

Orleans.Clustering.Kubernetes

Orleans Membership provider for Kubernetes
C#
186
star
5

Orleans.Sagas

A distributed saga implementation for Orleans
C#
155
star
6

Awesome-Orleans

😎 Awesome Microsoft Orleans Projects
136
star
7

Orleans.Http

An HTTP API for Microsoft Orleans
C#
107
star
8

Orleans.Providers.MongoDB

A MongoDb implementation of the Orleans Providers: Membership, Storage and Reminders.
C#
105
star
9

Orleans.Activities

Workflow Foundation (.Net 4.x System.Activities workflows) over Microsoft Orleans framework, providing stable, long-running, extremely scalable processes with XAML designer support.
C#
81
star
10

meetups

📆 A repository to organise virtual meetups to discuss Orleans and other distributed systems programming on .NET
80
star
11

OrleansTestKit

Unit Test Toolkit for Microsoft Orleans
C#
79
star
12

Orleans.Redis

Redis support packages for Orleans
C#
69
star
13

OrleansFabricSilo

Orleans running on Service Fabric
C#
59
star
14

Orleans.SyncWork

This package's intention is to expose an abstract base class to allow https://github.com/dotnet/orleans/ to work with long running CPU bound synchronous work, without becoming overloaded.
C#
58
star
15

Orleans.Providers.EntityFramework

An Entity Framework Core implementation of Orleans Grain Storage. More providers to come later.
C#
50
star
16

Orleans.HttpGateway.AspNetCore

C#
50
star
17

Orleans.Indexing

C#
48
star
18

Orleans.StorageProvider.Redis

A Redis implementation of the Orleans Storage Provider model. Uses the Azure Redis Cache to persist grain states.
C#
42
star
19

Orleans.Consensus

Raft implemented on Orleans
C#
41
star
20

Orleans.CosmosDB

Orleans providers for Azure Cosmos DB
C#
40
star
21

OrleansTemplates

C#
37
star
22

Announcements

📢 Orleans related public announcements - watch this repo to stay up-to-date
37
star
23

Orleans.Providers.RabbitMQ

Orleans providers for RabbitMQ.
C#
32
star
24

Orleans.EventSourcing.Snapshot

Snapshot storage provider for orleans event sourcing
C#
30
star
25

Orleans.MultiClient

A library to simplify access to multiple Orleans Clusters from a single point.
C#
30
star
26

OrleansMonitor

Use this library to monitor the Silos in your Orleans Deployment
C#
29
star
27

Orleans.Indexing-1.5

C#
27
star
28

Orleans.Containers

Distributed storage and processing of objects in Orleans
C#
26
star
29

orleans.eventsourcing

Event Sourcing support for Microsoft Orleans
C#
20
star
30

OrleansBlobStorageProvider

DEPRECATED - now part of the orleans codebase :shipit:
C#
13
star
31

Orleans.StorageProviders.SimpleSQLServerStorage

Ultra low friction Orleans Storage Provider using SQLServer
C#
13
star
32

orleans-samples

Sample projects
C#
12
star
33

OrleansShardedStorage

A library and test application to shard Orleans grains across multiple Azure Storage Accounts
C#
12
star
34

Orleans.Extensibility.IdentityServer

Makes Orleans the backend storage for IdentityServer4
C#
11
star
35

orleans.storageprovider.ravendb

Orleans StorageProvider for RavenDB
C#
11
star
36

Orleans.TelemetryConsumers.ElasticSearch

Telemetry Consumers posting to ElasticSearch
C#
10
star
37

OrleansCassandraUtils

MSR Orleans integration with Cassandra with grain persistence, clustering and reminder table support
C#
9
star
38

Orleans.Streams.Kafka

C#
9
star
39

Orleans.Dashboard

A Microsoft Orleans Dashboard application based on Blazor
CSS
8
star
40

node-orleans

A node.js client for codename orleans
JavaScript
7
star
41

Orleans.Telemetry.SerilogConsumer

Serilog ITelemetryConsumer and ILogConsumer implementations for Orleans.
C#
7
star
42

Orleans.IdentityStore

Use Orleans as an identity store for ASP Core
C#
7
star
43

OrleansCouchbaseProvider

C#
6
star
44

Orleans.TelemetryConsumers.MetricsTracker

The purpose of MetricsTracker isn't to visualize data directly, but to provide a simple, stable, performant, and effective streaming data source to feed a growing collection of useful Orleans monitoring, diagnostics & visualization tools.
JavaScript
6
star
45

Orleans.Persistence.Minio

Minio implementation of Orleans Grain Storage Provider
C#
5
star
46

Orleans.StorageProvider.Arango

🥑 ArangoDB Storage Provider for Microsoft Orleans
C#
4
star
47

orleans.storageprovider.documentdb

DocumentDB storage provider for Orleans
C#
4
star
48

Orleans.Clustering.Cassandra

A Cassandra implementation of the Orleans Membership Provider
C#
4
star
49

Orleans.TelemetryConsumers.Datadog

Orleans integration package for Datadog.
C#
3
star
50

orleans.serialization.json

Json serialization related libraries for Orleans.
C#
3
star
51

Orleans.Persistence.Cassandra

A Cassandra implementation of the Orleans Storage Provider
C#
3
star
52

presentations

📃 A repository of presentations and other marketing material for Microsoft Orleans
3
star
53

WebHostCompatibilityLayer

C#
2
star
54

Orleans.Providers.Firebase

Orleans providers for Firebase realtime database.
C#
2
star
55

Orleans.AspNetCore.SignalR

SignalR backplane based on Microsoft Orleans for ASP.NET Core
2
star
56

OrleansStatsDUtils

Orleans statistics provider for StatsD
C#
2
star
57

orleans.storageprovider.cloudservicewrapper

Azure Cloud Service Wrapper class for Orleans Storage Providers to enable configuration of settings using the Azure service configuration file
C#
1
star