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

Using Akka Clustering


Akka's clustering framework allows you to build fault-tolerant, decentralized, peer-to-peer based clusters without any single point of failure. It's a good system to build on top of if you want dynamic elasticity in your application services. It allows you to add and remove nodes on the fly, increasing or decreasing your total CPU power as the need arises.

The clustering system is somewhat complex, both in how it works and in the different things you can do with it. I definitely suggest that you read through the documentation for it on the Akka site if you plan on using it in your apps. I'll do my best to first give a high-level overview of the basics, such as how it works and how to enable it. Then, we'll shift gears into two specific features within—Clustering Sharding and Cluster Singleton—and how we will use them in the bookstore app.

Core architectural principles of clustering

Before we delve into enabling and using clustering in your projects, it's important to understand...