Akka Guide

What is this guide about?

This guide provides information to aid in understanding and using Akka.

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.

Akka provides:

  • 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 new tab, 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.

Lightbend Telemetry

Lightbend Telemetry new tab can capture data for applications using Akka libraries and modulesnew tab, Play, and Lagom. For those interested in adding telemetry to their deployments we advise reviewing the Lightbend Telemetry section of this guide.

How to…​

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-10-31