Master the art of creating scalable, concurrent, and reactive applications using Akka
About This Book
- 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
Who This Book Is For
If you want to use the Lightbend platform to create highly performant reactive applications, then this book is for you. If you are a Scala developer looking for techniques to use all features of the new Akka release and want to incorporate these solutions in your current or new projects, then this book is for you. Expert Java developers who want to build scalable, concurrent, and reactive application will find this book helpful.
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
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.
Style and approach
This comprehensive, fast-paced guide is packed with several real-world use cases that will help you understand concepts, issues, and resolutions while using Akka to create highly performant, scalable, and concurrency-proof reactive applications.