Akka is a Scala-based toolkit that simplifies developing concurrent distributed applications. Akka uses Actors-independently executing processes that communicate via message passing—as the foundation for fault-tolerant applications where individual actors can fail without crashing everything. Perfect for high-volume applications that need to scale rapidly, Akka is an efficient foundation for event-driven systems that want to scale elastically up and out on demand, both on multi-core processors and across server nodes.
Akka in Action is a comprehensive tutorial on building message-oriented systems using Akka. The book takes a hands-on approach, where each new concept is followed by an example that shows you how it works, how to implement the code, and how to (unit) test it. You'll learn to test and deploy an actor system and scale it up and out, showing off Akka's fault tolerance. As you move along, you'll explore a message-oriented event-driven application in Akka. You'll also tackle key issues like how to model immutable messages and domain models, and apply patterns like Event Sourcing, and CQRS. The book concludes with practical advice on how to tune and customize a system built with Akka.
I’ve started reading this book as a draft long before it was released. I’ve abandoned it for a while, but this fall it was finally released thus I no other excuse to finally finish reading it.
I need to confess that’s not the first Akka book I’ve read so far. By no means this book covers all the aspects of Akka (which is enormously huge, albeit allows you to write full fledged applications based only on itself). But it is THE BOOK I would recommend you to read if you’re interested in Akka right now. The book has been recently updated to reflect the latest changes in http, persistence and some other modules. Taking into account how quickly does akka keep its pace I would say that after a while without constant updates (which took this book 4 years to get finished) this book could get outdated.
It has the bulk of the info you need to know about Akka to start working with it and get productive. Code that comes on its Github really works (which is rare for books’ code examples) and it can help you get your hands dirty in parts of the AKKA as quickly as possible.
My score is 4/5(I recommend to start reading it right now until it’s too late)
* this is a review of MEAP v15 version - currently 14 of 15 chapters have content (not confirmed as final yet) & the final release date is unknown *
This book has its flaws & 3-3.5 stars may have been a more adequate rating, but it's promising enough, so I assume at least some cons will be fixed & proper editing will take place.
Anyway, I felt a bit odd when reading this book:
* the introductory stuff I've already known (all the basics, except clustering, low level strategy customization, routing tricks, tuning) seemed very chaotic, a bit out of order & ... unstructured (at least no structured in an intuitive way). I had a bit similar feeling with "Scala in Action" some time ago, but it worked our very positively, so maybe I'm a bit oversensitive here too.
* once I was out of my comfort zone, reading about stuff I've never tried (& sometimes never seen at all) before, now things started to be far more clear & organized :)
Book still needs a lot of polishing, but for now it seems a reasonable & relatively not risky bet for anyone who'd like to learn Akka. Better than "Bleeding Edge Press" one & more approachable for newbies than "Effective Akka".
*** UPDATE *** Ahh, one more thing. For now it seems that even if planned chapters are there, the book will still be lacking some interesting component descriptions - namely Akka Streams & Akka HTTP.
Seeing the amount of changes that went into Akka between version 2.4.9, which is covered in Akka in Action, and the current 2.6.9 version, Akka in Actions has aged fairly well. However, that's probably the best thing I can say about the book.
The topics and concepts covered within are in most cases just glanced over and are elaborated in even fewer detail than is the case in Akka's reference documentation, which, to bring insult to injury, I've found to be quite terse at times.
Additionally, the author sometimes takes things too far in his attempt to sell Akka to the reader - the showcased "traditional" implementations either use approaches that were considered obsolete at the time or they use an anti-pattern and comparing those implementations to an Akka one seems disingenuous.
Those issues aside, Akka in Action can be a good intro into the Akka world to someone who's just starting their hakking journey - it is easier to read and follow than the official documentation and the examples and code is very novice-friendly. Unfortunately for me and the book's rating, I've been hakking for a bit over 18 months now
In short this is very good book about Akka technology. It's easily readable, not too long and basically allows you to catch up with Akka without any prior experience with it.
Book basically goes through most of Akka more interesting features and plugins including clustering, persistence etc. Most notable omission is probably Akka Typed and Akka Streams. Skipping former one (Akka Typed) may actually be reasonable as it's at experimental stage. The latter one (Akka Stream) - as both more mature and IMHO more complex concept - could be probably added to the book.
I had no problems with following concepts described in the book. It seems to start from basic concepts and later kinda build on top of them. Samples are clear and sensible. Provided pieces of code are great help.
Perhaps the best part of the book is it's focus on testing - both unit testing and integration testing, including even things like multi JVM tests and testing clusters in your tests. This is really a powerful aspect of the book.
To sum things up: this book is rather for Akka beginners. - If you have no (or very limited) experience with Akka - this book is a safe bet. It will give you general understanding of concepts and practical usage of Akka. - On the other hand - if you are already quite experienced (say you spent a year doing more or less Akka-related stuff), I'd say you may skip this book altogether and proceed to docs and blogs. You won't learn much new stuff here.
A good book to learn about Akka and the actor model. It covers how to realize basic actor model in Akka along with important extensions such as futures, agents, FSM, remoting, clustering, and persistence. It provides a good introduction to fault tolerance in the context of actor model
It could have been a great book if 1) it used simple and precise language (e.g., "which takes two argument lists", did you mean two arguments?) and 2) it did not have typos in code and results.
Both these errors will slow down reading and comprehension; specifically, for folks who are not well-versed with Scala. To be fair, the book does say reader should know some Scala. However, I think the book would have been more accessible to non-Scala devs (e.g., Kotlin devs) if they wouldn't have to look up if a specific nuance was a typo or otherwise.
Also, all of the code bits are not in the book. While this is generally fine, I felt that some important code bits were missing and this slowed down reading and comprehension.
Clearly, a book to pick up Akka and scratch the surface of distributed computing.
I like the book and it can be used as a good start in learning akka. It has a lot of recipes, patterns, use cases that will help understand the power of akka. Considering the fact that akka is so huge instrument with well structured and self-sufficient documentation, I didn't know what to start with. The book helped me.
Love the motivation in the first chapter, comparing Akka toolkit apps to traditional database centric, anemic domain model apps. This is a key reason for my personal discovery of Akka.
Reading through subsequent chapters one realizes that there are a lot of typical distributed system features included in the toolkit. A notable example is the use of virtual nodes in the consistent hashing routers. A similar concept exists in the Cassandra distributed database - indeed perhaps one might even have inspired the other. But in that respect I feel one can learn much about distributed systems in general from this book.
Book covers multiple Akka's domain, even quite exotic, never seen used by me, but this book rather a documentation than user guide, since it doesnt give a full picture how these doamins should be conbined together into proper Akka application, book gives a description of a set not connected topics.