What is Akka?
Scalable, distributed real-time transaction processing
We believe that writing correct, concurrent, fault-tolerant and scalable applications is too hard.
Most of the time, that's because we are using the wrong tools and the wrong level of abstraction. Akka is here to change that.
By using the Actor Model, we raise the abstraction level and provide a better platform to build scalable, resilient and responsive applications—see the Reactive Manifesto for more details.
For fault-tolerance we adopt the "let it crash" model, which the telecom industry has used with great success to build applications that self-heal and systems that never stop. Actors also provide the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications.
Download from https://github.com/akkadotnet/akka.net.
A unique hybrid
Actors give you:
- Simple and high-level abstractions for concurrency and parallelism.
- Asynchronous, non-blocking and highly performant event-driven programming model.
- Very lightweight event-driven processes (several million actors per GB of heap memory). See the chapter for C# or F#.
- Supervisor hierarchies with "let it crash" semantics.
- Supervisor hierarchies can span over multiple virtual machines to provide truly fault-tolerant systems.
- Excellent for writing highly fault-tolerant systems that self-heal and never stop. See Fault Tolerance.
Everything in Akka is designed to work in a distributed environment: all interactions of actors use pure message passing and everything is asynchronous.
Clustering support is currently in beta. See here for details.
Akka.Persistence is currently in beta and is under very active development. Follow the development and learn more here.
Akka.NET is supported by Petabridge, a company making distributed, realtime computing easy for .NET developers.