protoactor-dotnet alternatives and similar packages
Based on the "Distributed Computing" category.
Alternatively, view protoactor-dotnet alternatives based on common mentions on social networks and blogs.
-
Akka.net
Canonical actor model implementation for .NET with local + distributed actors in C# and F#. -
Online Store Modular Monolith
DISCONTINUED. 🛒 Implementing an “online store” modular monolith application with domain-driven design and CQRS with using in-memory message broker based on .Net Core. -
.NEXT Raft
Raft implementation for .NET and ASP.NET Core that allows to build clustered microservices powered by distributed consensus and replication
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of protoactor-dotnet or a related project?
README
💬 Join our Slack channel
Proto.Actor
Ultra-fast, distributed, cross-platform actors.
Bootcamp Training
https://github.com/AsynkronIT/protoactor-bootcamp
Stats
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
.
Sample application
https://github.com/asynkron/realtimemap-dotnet
Sponsors
Our awesome sponsors:
<!-- sponsors --><!-- sponsors -->
Contributors
Made with contributors-img.
Partners, Sponsors, and Contributor Companies
<!-- make pretty with logos etc -->
Name | Role |
---|---|
Asynkron AB | Founder and owner of Proto.Actor |
Helleborg AS | Core contributor team |
Ubiquitous AS | Core contributor team |
Ahoy Games | Core contributor team |
Etteplan | Contributing tutorials, documentation |