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

Chapter 3. Curing Anemic Models with Domain-Driven Design

Now that we've had a refresher on the actor model, and how Akka leverages it as a concurrency mechanism, we can start with the first of our big refactors. In the Assessing the application's domain model section, in Chapter 1, Building a Better Reactive App, one of the issues I pointed out with the original bookstore app was that its code model was not a strong representation of the business model. I even went so far as to call the model anemic, which implies that it is a weak representation of the behaviors that are inherent in the business model. So, what can we do to fix this?

The domain-driven design (DDD) is a concept that can be applied to domain modeling to transform the business domain into an application model that directly maps to concepts in the business domain. In this chapter, we will use this approach to start making improvements to our app. Following a DDD approach will strengthen the bond between the business domain...