What is Akka?
Akka is a toolkit for building highly concurrent systems that are scalable, highly efficient, and resilient by using Reactive Principles. Akka allows you to focus on meeting business needs instead of writing low-level code to provide reliable behavior, fault tolerance, and high performance.
Multi-threaded behavior — without the use of low-level concurrency constructs like atomics or locks; relieving you from even thinking about memory visibility issues.
Transparent remote communication between systems and their components — relieving you from writing and maintaining difficult networking code.
Clustered, high-availability, elastic architecture, that scales on demand — enabling you to deliver a truly reactive system.
Akka’s use of the actor model provides a level of abstraction that makes it easier to write correct concurrent, parallel and distributed systems. The actor model spans the full set of Akka libraries, providing you with a consistent way of understanding and using them.
Who are the intended audience of this guide?
This guide is for developers, administrators, evaluators and dev/ops. For evaluators the guide will provide a solid demonstration the power and value available via Akka. For developers the guide focuses on getting you up and running by covering the basics of Microservices and Cloud deployment, as well as the fundamental concepts that underlay Reactive development. For administrators, and devops the guide lays out the requirements, operations and patterns of usage.
Whether you are new to Reactive principles, or an experienced Akka user, you will find something of use in this guide. The guide complements the Akka reference documentation , which presents all Akka features in detail.
How to get the most out of this guide
For a code-first experience, have a look at the Implementing Microservices with Akka tutorial. The tutorial walks you through an example project and explains how features from the Akka ecosystem connect to build Reactive Systems. It will point you to the relevant concepts where applicable.
If this is your first experience with Reactive frameworks or Akka, we recommend reviewing the What is Reactive? section. This section presents some background and ideas behind Reactive. You can read about those concepts when introduced in the tutorial, or read them first if you prefer a more theoretical overview before diving into the code. There you will learn, for example:
The challenges that Reactive Architecture can help you overcome
A summary of Reactive Principles
The benefits of using Akka
If you are looking for a deeper dive into the conceptual framework it is also advisable to review Designing Reactive Microsystems.
The Akka modules for Microservices section provides a conceptual overview for each of the Akka modules used with Microservices.
Akka Microservices tutorial
The Implementing Microservices with Akka tutorial illustrates how to implement an Event Sourced CQRS application with Akka Persistence and Akka Projections.
The tutorial shows how to build and run each service step by step:
Lightbend Telemetry can capture data for applications using Akka libraries and modules, Play, and Lagom. For those interested in adding telemetry to their deployments we advise reviewing the Lightbend Telemetry section of this guide.
Some development tasks arise from requirements on existing projects. The How to … section contains guidance on introducing new features or architectural improvements to an existing codebase.
This documentation was last published: 2023-03-22