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

Designing our read model implementation


Now that we have a high-level idea of CQRS, let's set about designing how to use this pattern to support the query needs for our bookstore app. If you remember correctly, in Chapter 4, Making History with Event Sourcing, we had to remove the comment out of the code that we had previously working to handle multientity queries within our app. We have events for all of our entities stored in Cassandra, via Akka Persistence, currently. Unfortunately, the way this data is stored (binary via protobuf) and the nature of the data itself (events versus actual current state) makes it next to impossible to write queries against it. This means that we can't currently handle things such as looking up books by authors or sales orders by users. In order to get this functionality back, we will have to build read models for our entities.

Selecting our read model data store

Our first order of business in designing our read-model implementation is selecting a good storage...