In this book, you learn how the Akka toolkit provides a single simple programming model for coding concurrent and distributed applications: the actor programming model. Actors are nothing new in and of themselves. What’s unique is the way actors are provided in Akka to scale applications both up and out on the Java virtual machine (JVM). As you’ll see, Akka uses resources efficiently and makes it possible to keep complexity relatively low while an application scales.
Akka’s primary goal is to make it simpler to build applications that are deployed in the cloud or run on devices with many cores and that efficiently take advantage of the full capacity of the computing power available. It’s a toolkit that provides the actor programming model, a runtime, and the necessary tools for building scalable applications. This chapter discusses the context in which Akka was created, the problem it is designed to solve, and its key architectural components.