All Projects → AsynkronIT → Protoactor Dotnet

AsynkronIT / Protoactor Dotnet

Licence: apache-2.0
Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin

Projects that are alternatives of or similar to Protoactor Dotnet

protoactor-go
Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin
Stars: ✭ 4,138 (+286.73%)
Mutual labels:  distributed-systems, actors, akka, clustering, distributed-computing
protoactor-python
Proto Actor - Ultra fast distributed actors
Stars: ✭ 78 (-92.71%)
Mutual labels:  actors, akka, clustering, distributed-computing
Protoactor Go
Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin
Stars: ✭ 3,934 (+267.66%)
Mutual labels:  akka, actors, clustering, distributed-computing
realtimemap-dotnet
A showcase for Proto.Actor - an ultra-fast distributed actors solution for Go, C#, and Java/Kotlin.
Stars: ✭ 47 (-95.61%)
Mutual labels:  distributed-systems, actors, clustering, distributed-computing
Gosiris
An actor framework for Go
Stars: ✭ 222 (-79.25%)
Mutual labels:  actors, distributed-systems, distributed-computing
Akkatecture
a cqrs and event sourcing framework for dotnet core using akka.net
Stars: ✭ 414 (-61.31%)
Mutual labels:  akka, actors, clustering
nact
nact ⇒ node.js + actors ⇒ your services have never been so µ
Stars: ✭ 1,003 (-6.26%)
Mutual labels:  distributed-systems, actors, akka
Hazelcast
Open-source distributed computation and storage platform
Stars: ✭ 4,662 (+335.7%)
Mutual labels:  clustering, distributed-systems, distributed-computing
Nact
nact ⇒ node.js + actors ⇒ your services have never been so µ
Stars: ✭ 848 (-20.75%)
Mutual labels:  akka, actors, distributed-systems
Platon Go
Golang implementation of the PlatON protocol
Stars: ✭ 331 (-69.07%)
Mutual labels:  distributed-systems, distributed-computing
Diplomat
A HTTP Ruby API for Consul
Stars: ✭ 358 (-66.54%)
Mutual labels:  distributed-systems, distributed-computing
Moosefs
MooseFS – Open Source, Petabyte, Fault-Tolerant, Highly Performing, Scalable Network Distributed File System (Software-Defined Storage)
Stars: ✭ 1,025 (-4.21%)
Mutual labels:  clustering, distributed-computing
Sleuth
A Go library for master-less peer-to-peer autodiscovery and RPC between HTTP services
Stars: ✭ 331 (-69.07%)
Mutual labels:  distributed-systems, distributed-computing
Robots
Actor system for Rust
Stars: ✭ 294 (-72.52%)
Mutual labels:  akka, actors
Awesome Distributed Deep Learning
A curated list of awesome Distributed Deep Learning resources.
Stars: ✭ 277 (-74.11%)
Mutual labels:  distributed-systems, distributed-computing
Dagsfm
Distributed and Graph-based Structure from Motion
Stars: ✭ 269 (-74.86%)
Mutual labels:  clustering, distributed-systems
Akkadotnet Code Samples
Akka.NET professional reference code samples
Stars: ✭ 451 (-57.85%)
Mutual labels:  akka, actors
Awesome Distributed Systems
Awesome list of distributed systems resources
Stars: ✭ 512 (-52.15%)
Mutual labels:  distributed-systems, distributed-computing
Akka Typed Session
add-on to Akka Typed that tracks effects for use with Session Types
Stars: ✭ 47 (-95.61%)
Mutual labels:  akka, distributed-systems
Lizardfs
LizardFS is an Open Source Distributed File System licensed under GPLv3.
Stars: ✭ 793 (-25.89%)
Mutual labels:  distributed-systems, distributed-computing

Build status

Join our Slack channel

Proto.Actor

Ultra-fast, distributed, cross-platform actors.

Bootcamp Training

https://github.com/AsynkronIT/protoactor-bootcamp

Installing

Using NuGet Package Manager Console:

PM> Install-Package Proto.Actor

Source code

This is the .NET repository for Proto Actor.

Other implementations:

Design principles

Minimalistic API - The API should be small and easy to use. Avoid enterprisey containers and configurations.

Build on existing technologies - There are already a lot of great technologies for e.g. networking and clustering. Build on those instead of reinventing them. E.g. gRPC streams for networking, Consul for clustering.

Pass data, not objects - Serialization is an explicit concern - don't try to hide it. Protobuf all the way.

Be fast - Do not trade performance for magic API trickery.

Getting started

The best place currently for learning how to use Proto.Actor is the examples. Documentation and guidance is under way, but not yet complete, and can be found on the website.

Hello world

Define a message type:

internal record Hello(string Who);

Define an actor:

internal class HelloActor : IActor
{
    public Task ReceiveAsync(IContext context)
    {
        var msg = context.Message;
        if (msg is Hello r)
        {
            Console.WriteLine($"Hello {r.Who}");
        }
        return Task.CompletedTask;
    }
}

Spawn it and send a message to it:

var system = new ActorSystem();
var context = system.Root;
var props = Props.FromProducer(() => new HelloActor());
var pid = context.Spawn(props);

context.Send(pid, new Hello("Alex"));

You should see the output Hello Alex.

Contributors

Made with contributors-img.

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].