Book Image

Mastering Akka

By : Christian Baxter
Book Image

Mastering Akka

By: Christian Baxter

Overview of this book

For a programmer, writing multi-threaded applications is critical as it is important to break large tasks into smaller ones and run them simultaneously. Akka is a distributed computing toolkit that uses the abstraction of the Actor model, enabling developers to build correct, concurrent, and distributed applications using Java and Scala with ease. The book begins with a quick introduction that simplifies concurrent programming with actors. We then proceed to master all aspects of domain-driven design. We’ll teach you how to scale out with Akka Remoting/Clustering. Finally, we introduce Conductr as a means to deploy to and manage microservices across a cluster.
Table of Contents (17 chapters)
Mastering Akka
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Preface

Refactoring the inventory management module


We'll start out by refactoring the inventory management module, like we did in in the section titled The Book and InventoryClerk actors, in Chapter 3, Curing Anemic Models with Domain-Driven Design. The focus of the next few sections will be to get the Book entity to use PersistentActor and an event sourced approach to its persistence. This will be a multi-part process where we do an initial simple refactor. Then, we'll layer in some improvements as I introduce a few new concepts from Akka Persistence.

The PersistentEntity abstract class

The PersistentEntity abstract class, in the bookstore-common project, is the base class that all of our concrete event sourced entities will extend from. It's a similar concept to EntityActor from the Chapter 3, Curing Anemic Models with Domain-Driven Design, DDD refactor, but it's a lot less complex. The majority of the complicated stuff I hand coded is now handled by PersistentActor, which PersistentEntity extends...