Book Image

Akka Cookbook

By : Vivek Mishra, Héctor Veiga Ortiz
Book Image

Akka Cookbook

By: Vivek Mishra, Héctor Veiga Ortiz

Overview of this book

Akka is an open source toolkit that simplifies the construction of distributed and concurrent applications on the JVM. This book will teach you how to develop reactive applications in Scala using the Akka framework. This book will show you how to build concurrent, scalable, and reactive applications in Akka. You will see how to create high performance applications, extend applications, build microservices with Lagom, and more. We will explore Akka's actor model and show you how to incorporate concurrency into your applications. The book puts a special emphasis on performance improvement and how to make an application available for users. We also make a special mention of message routing and construction. By the end of this book, you will be able to create a high-performing Scala application using the Akka framework.
Table of Contents (18 chapters)
Title Page
About the Authors
About the Reviewer
Customer Feedback

Shutdown patterns in Akka

By default, once an actor system is initialized, it stays alive until it is shut down explicitly. At first, it might seem easy to understand when to terminate an actor system, for example, if all mailboxes are empty and there is no actor processing a message for a given period of time. However, in Akka, things are more complex than that. It could be that there is a Future being processed and taking some time to complete. It could also happen an actor sent a message to a remote actor and it's waiting for the response in a remote/cluster environment.

There are different options to decide when an actor system is ready to be terminated. In this recipe, we will introduce the concept of reaper. Reaper will be an actor watching all other actors within the actor system. Only when all those actors are stopped will it proceed with the system shutdown.

Getting ready

To step through this recipe, we need to import the Hello-Akka project; all other prerequisites are the same as...