Classic Akka (Actors, Http, Persistence, Remoting and Streams )

Part of our "Scala" courses

3 days

Course Overview

Rest assured that this course will cover all relevant bases to make sure you have all the necessary skills to work with the Classic Akka modules:

  • Core Actors
  • Akka HTTP
  • Akka Persistence (intro)
  • Akka Remoting (Artery) and Cluster Primer (intro)
  • Akka Streams (intro)

Note that this course does not cover Akka Typed.

Course Prerequisites

In order to get the best from this course it is highly recommended that students should be at least familiar with the basics of the Scala Programming language. (Ideally their knowledge of Scala should reach the level established by our Core Scala Course).



  • Introduction to the Actor Model
  • Understand advantages of using actors
  • Introduce the basics of building an actor

Core Akka Actors

  • Recap of the basics
  • Understand actor hierarchies
  • Understand the messages and the Message Exchange
  • Understand the difference between ask and tell
  • Replying to messages
  • Forwarding messages
  • Introduce the actor life-cycle
  • Stopping actors
  • Define life-cycle callbacks
  • Monitoring children
  • Actor Supervision and Error handling
  • Pool and Group routing (round-robin, balancing, broadcasts, …)
  • Using become/unbecome for state transitions
  • Stashing messages
  • Using Finite State Machines (FSM)

Akka Http

  • Introduction and history of Akka http
  • Understand the type-safe HTTP Model
  • Introduce the Server API
  • Understand routes
  • Introduce key directives
  • Composing directives
  • Understand rejection
  • Use the PathMatcher DSL
  • Extracting parameters
  • Working with form fields
  • Read and write cookies
  • Marshalling/unmarshalling data
  • Use Spray-Json
  • Discuss using other json frameworks (e.g., Play Json)
  • Understand Error handling
  • Define custom ExceptionHandler
  • Introduce the Client API
  • Sending requests and handling the response
  • Use streaming

Akka Persistence Primer

  • Understand journaling
  • Explain Event Sourcing
  • Understand commands and events
  • replaying events
  • Define a persistent actor
  • work with snapshots
  • Introduce Persistence Query
  • Discuss and implement CQRS (Command Query Responsibility Segregation)

Akka Remoting and Cluster Primer

  • Understand Akka's peer-to-peer model
  • Introduce Artery
  • Configuration of akka remoting
  • create and work with remote actors
  • Serialisation (Java, Jackson, etc)
  • Introduce Akka Cluster
  • Manage Cluster membership
  • Understand the role of seeders
  • Discuss different cluster services (singleton, sharding, …)

Akka Streams Primer

  • Understand the Akka Stream Architecture (Source, Flow and Sink)
  • Introduce reactive streams (and appreciate backpressure)
  • Define sources
  • Define reusable sinks
  • Define reusable flows
  • Understand graphs and materialisation
  • Truly understand the types involved

Public Events

Currently we have no public courses planned for Classic Akka (Actors, Http, Persistence, Remoting and Streams )

Private Events

Do you have a team that needs a Classic Akka (Actors, Http, Persistence, Remoting and Streams ) course?

Contact Us

Send us a message

This Classic Akka (Actors, Http, Persistence, Remoting and Streams ) course looks very interesting, I do however have a question