Mastering Akka

Posted By: AlenMiler
Mastering Akka

Mastering Akka by Christian Baxter
English | 21 Oct. 2016 | ASIN: B01GOJCXPU | 436 Pages | AZW3 | 2.81 MB

Key Features

This book will help you cure anemic models with domain-driven design
We cover major Akka programming concepts such as concurrency, scalability, and reactivity
You will learn concepts like Event Sourcing and CQRS via Akka Persistence, Akka Streams, Akka Http as well as Akka Clustering

Book Description

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.

What you will learn

Use Akka actors to enable parallel execution
Build out domain-driven design based components like entities and aggregates
Respond to command requests on that aggregate root that affect the internal state
Leverage Akka Persistence, protobuf and Cassandra to save the persistent state of you entities
Build out complex processing graphs with the Graph Builder DSL
Understand the dynamic push/pull nature of backpressure handling within Akka Streams
Route HTTP requests to an actor and return a response
Deploy actor instances across a set of nodes via Conductr for high availability

About the Author

Christian Baxter, from an early age, has always had an interest in understanding how things worked. Growing up, he loved challenges and liked to tinker with and fix things. This inquisitive nature was the driving force that eventually led him into computer programming. While his primary focus in college was life sciences, he always set aside time to study computers and to explore all aspects of computer programming. When he graduated from college during the height of the Internet boom, he taught himself the necessary skills to get a job as a programmer. He's been happily programming ever since, working across diverse industries such as insurance, travel, recruiting, and advertising. He loves building out high-performance distributed systems using Scala on the Akka platform.

Christian was a long time Java programmer before making the switch over to Scala in 2010. He was looking for new technologies to build out high throughput and asynchronous systems and loved what he saw from Scala and Akka. Since then, he's been a major advocate for Akka, getting multiple ad tech companies he's worked for to adopt it as a means of building out reactive applications. He's also been an occasional contributor to the Akka codebase, identifying and helping to fix issues. When he's not hacking away on Scala and Akka, you can usually find him answering questions on Stackoverflow as cmbaxter.

Table of Contents

Building a Better Reactive App
Simplifying Concurrent Programming with Actors
Curing Anemic Models with Domain-Driven Design
Making History with Event Sourcing
Separating Concerns with CQRS
Going with the Flow with Akka Streams
REST Easy with Akka HTTP
Scaling Out with Akka Remoting/Clustering
Managing Deployments with ConductR
Troubleshooting and Best Practices