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

Fixing the transaction in the order creation process


Way back in the Avoiding cross-domain transactions section, in Chapter 1, Building a Better Reactive App, I flagged the fact that we had a cross-domain transaction in the creation of a new SalesOrder entity. The SQL logic within that transaction not only created the order header and line items, but it also used the book table directly to decrement the inventory associated with that order. I also stated that this is not a real scalable solution, both from a performance standpoint and the fact that it's creating a strong tie (at the db level nonetheless) between these two contexts that will be difficult to deal with moving forward. It's not the time to start the process of getting rid of that transaction relationship and making it more flexible moving forward.

As part of the refactoring work in the incomplete code folder, I also finished the changes to the sales order processing context. The FSM code that used to be in SalesOrderProcessor...