Home

Akka

Akka is a toolkit and runtime for building highly concurrent, distributed, and fault-tolerant applications on the Java Virtual Machine (JVM) and, via ports and bindings, on other platforms such as .NET (Akka.NET). At its core it implements the actor model: actors encapsulate state and behavior, communicate exclusively through asynchronous messages, process messages one at a time, and can create child actors. Supervisors monitor failures and can restart or substitute actors, enabling resilience without shared mutable state.

An Akka application runs inside an actor system. Messages are sent to actors and handled by their

The ecosystem includes two API styles: Classic and Typed. Akka Typed offers a more type-safe interface for

Use cases include scalable backends, real-time processing, and microservices architectures. Akka originated in the Scala and

mailboxes,
with
dispatchers
controlling
concurrency.
Features
include
location
transparency
through
clustering
and
remoting,
which
lets
actors
span
multiple
machines,
and
a
supervision
strategy
for
fault
tolerance.
defining
message
protocols.
Core
modules
cover
Akka
Cluster
(distributed
actors),
Akka
Persistence
(durable
state
with
journal
and
snapshots),
Akka
Sharding
(distributing
actors
across
a
cluster),
Akka
Streams
(reactive
streams
integration),
and
Akka
HTTP
(HTTP
server).
Additional
projects
provide
integration
with
other
technologies
and
domains
within
the
Akka
ecosystem.
Java
ecosystem,
with
Jonas
Bonér
introducing
the
project
in
2009;
it
is
maintained
by
Lightbend
and
the
community,
and
remains
a
prominent
option
for
building
resilient,
asynchronous
systems.