Core AKKA (Actors, Http, Persistence, Remoting and Streams )

Duration: 2 days

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

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

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).

Please find the course objectives below:

Introduction

  • 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 (roundrobin, 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
  • Configuration of akka remoting
  • create and work with remote actors
  • Introduce Akka Cluster
  • Manage Cluster membership
  • Understand the role of seeders
  • Discuss different cluster services (singelton, 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
For an onsite course please contact us