Akka

Categories: Akka, Distributed Computing, Scala
Course Length: 5 Days

Akka is a free and open-source toolkit and runtime simplifying the construction of concurrent and distributed applications on the JVM. Akka supports multiple programming models for concurrency, but it emphasizes actor-based concurrency, with inspiration drawn from Erlang.

The Akka Course is 90% Scala-based, but we will include one or two sections in Java.

  • What is Akka

    • What is Akka

    • History or Akka

    • Requirements of Akka

    • Understanding the Akka and Scala Community

    • Terminology

    • Use Cases of Akka

  • Untyped Actors

    • Untyped Actors in Java

    • Untyped Actors in Scala

  • Futures and Promises

    • The History of java.util.concurrent Futures

    • Futures and Promises in Java

    • About Completeable Futures in Java 8

    • Understanding scala.util.concurrent Futures

    • Futures and Promises in Actors

  • Killing and Poisoning Actors

    • Killing Actors

    • Stopping Actors

    • Poisoning Actors

    • Death Watch

  • Fault Tolerance

    • One for One Strategy

    • All for One Strategy

  • Dispatchers

    • Configuring Dispatchers

    • Configuring Mailboxes

    • Configuring Durable Mailboxes

  • Scaling up with Routers

    • Configuring Additional Routers to Handle Load

    • Differentiating Routers

  • Scaling out with Remote Systems

    • Understanding Netty

    • Configuring Additional Systems to Handle Load

    • Remote Routers

    • Persisting State

  • Event Bus

  • State Machines

    • Change state Becoming and Unbecoming

    • Using Finite State Machines

  • Scaling with Clusters

    • Receptionists

    • Cluster Convergence

  • About Akka Streams

    • Asynchronous Boundaries

    • Akka Streams in Java

    • Akka Streams in Scala

  • Akka HTTP

    • Akka Server and DSL

    • Akka HTTP in Java

    • Akka JSON in Scala

  • About Deploying Akka

    • Deploying the Cloud

    • Deploying to Kubernetes

  • Testing Akka