Skip to content
@akkadotnet

Akka.NET

Distributed Actor System for .NET

Akka.NET

Akka.NET Logo

Akka.NET is a .NET port of the popular Akka project from the Scala / Java community. We are an idiomatic .NET implementation of the actor model built on top of the .NET Common Language Runtime.

We are a .NET Foundation member project.

Discord

How is Akka.NET Used?

Akka.NET can be used in-process or inside large, distributed real-time systems; we support a wide variety of use cases.

Akka.NET can be used to solve the following types of problems:

  1. Concurrency - Akka.NET actors only process messages one-at-a-time and they do so in first in, first out (FIFO) order; this means that any application state internal to an actor is automatically thread-safe without having to use locks or any other shared-memory synchronization mechanisms.
  2. Stream Processing - Akka.NET actors and Akka.Streams make it easy to build streaming applications, used for processing incoming streams of data or incoming streams of live events such as UI or network events inside native applications.
  3. Event-Driven Programming - actors make it easy to build event-driven applications, as actors' message-processing routines naturally express these types of designs.
  4. Event Sourcing and CQRS - Akka.Persistence, used by actors to make their state re-entrant and recoverable across restarts or migrations between nodes, natively supports event sourcing. Akka.Persistence.Query can be used to compute CQRS-style projections and materialized views from Akka.Persistence data.
  5. Location Transparency - Akka.Remote makes it simple for actors in remote processes to transparently communicate with each other.
  6. Highly Available, Fault-Tolerant Distributed Systems - Akka.Cluster, Akka.Cluster.Sharding, and other tools built on top of Akka.Cluster make it possible to build highly available and fault-tolerant distributed systems by leveraging peer-to-peer programming models with topology-aware message routing and distribution.
  7. Low Latency, High Throughput - Akka.NET aims to be low latency and high throughput, processing 10s millions of messages per second in-memory and hundreds of thousands of messages per second over remote connections.

Where Can I Learn Akka.NET?

You can start by taking the Akka.NET Bootcamp, but there are many other great learning resources for Akka.NET Online.

Getting Help

Need help with Akka.NET? Please see our SUPPORT.md file for places you can go to get support for you and your company.

Contribuing to Akka.NET

If you'd like to contribute to Akka.NET, please take a look at our contribution guidelines!

Pinned Loading

  1. akka.net akka.net Public

    Canonical actor model implementation for .NET with local + distributed actors in C# and F#.

    C# 4.7k 1k

  2. Alpakka Alpakka Public

    Akka Streams Connectors - Alpakka

    C# 110 40

  3. Akka.Streams.Kafka Akka.Streams.Kafka Public

    Kafka Akka.Streams connectors - part of the Alpakka project

    C# 67 22

  4. Akka.Management Akka.Management Public

    Akka.NET cluster management, bootstrapping, and more.

    C# 27 11

  5. Akka.Hosting Akka.Hosting Public

    Akka.Hosting - standardized Akka.NET hosting without any HOCON configuration. Ties into Microsoft.Extensions.Configuration, Logging, Hosting, and DependencyInjection.

    C# 58 16

  6. akkadotnet-templates akkadotnet-templates Public

    Production-ready dotnet new templates for Akka.NET.

    C# 29 8

Repositories

Showing 10 of 39 repositories