This is the foreword I wrote for Vaughn Vernon’s great book on Reactive Messaging Patterns with the Actor Model.
Available on Amazon here.
When Carl Hewitt invented the Actor Model in the early 70s he was way ahead of his time. Through the concept of Actors he defined a computational model embracing non-determinism—assuming all communication being asynchronous. Non-determinism might sound like a bad thing but is actually what enables concurrency, which together with the concept of stable addresses to stateful isolated processes allows Actors to be decoupled in both time and space, supporting distribution and mobility.
Today the world has caught up with Hewitt’s visionary thinking; multi-core processors, cloud computing, mobile devices and the Internet of Things is the norm. This has fundamentally changed our industry and the need for a solid foundation to model concurrent and distributed processes is greater than ever. I believe that the Actor Model can provide the firm ground we so desperately need in order to build complex distributed systems that are up for the job of addressing today’s challenges—adhering to the Reactive principles of being responsive, resilient and elastic—and is the reason I created Akka; to put the power of the Actor Model into the hands of the regular developer.
I’m really excited about Vaughn’s book. It provides a much needed bridge between Actors and traditional enterprise messaging, and puts Actors into the context of building real-world Reactive messaging systems. I like its approach of only relying on the basics in Akka—the Actor Model, and not its high-level libraries—as the foundation for explaining and implementing high-level messaging and communication patterns. It is fun to see how the Actor Model can, even though it is a low level computation model, be used to implement powerful and rich messaging patterns in a very simple and straightforward manner. Once the reader has understood the basic ideas they can bring in more high-level tools and techniques.
This book also does a great job of formalizing and naming many of the patterns that users in the Akka community have had to discover and re-invent themselves, in an ad-hoc manner, over the years. I remember enjoying reading and learning from the classic Enterprise Integration Patterns (EIP) book by Hophe and Woolf a few years ago, and I’m glad that Vaughn builds upon and reuses its pattern catalog, and puts them in a new and fresh context. But I believe that the most important contribution of this book is that it does not stop there, but takes the time to define and introduce a unique pattern language for Actor messaging—giving us a vocabulary for how to think about, discuss and communicate the patterns and ideas.
This is an important book—regardless if you are a newbie or a seasoned hakker—and hope I that you will enjoy it as much as I did.
—Jonas Bonér, Founder of the Akka Project