Review of PacktPub's "RabbitMQ Messaging Application Development How-to"
I was sent a copy of this book for review, and I'm glad I was. I like this book. I didn't know anything about RabbitMQ before picking the book up and little about Node.js which is used for all the example code. I was keen to learn about RabbitMQ though, knowing that it's used in my favourite IaaS platform: OpenStack.
I think that the sub-title of the book "Build scalable message-based applications with RabbitMQ" should mention that this is "with RabbitMQ and Node.js".
This is a short book, part of PacktPubs "INSTANT" series, "Short Fast Focused" as they say on the book. It's about 40 pages long.
I like this book because without any knowledge either of RabbitMQ or Node.js I found the examples to be easy to follow and the code easy to read. All the example code is available from PacktPub's web site - if you've registered the book - or from github.
The first section describes the explains why RabbitMQ exists abstracting away the problems of scalability, reponsiveness, availability etc allowing you to get on with your application able to take the low-level messaging for granted followed by how to install RabbitMQ and the amqp module needed for Node.js.
The body of the book is a series of exercises starting with a simple "Hello World" exchange between a Producer and a Consumer, gradually becoming more complicated with examples of Work Queues, Persistent Messages, Acknowledgements, Publisher Confirms, Publish Subscrube and Complex Routing. These examples are incremental developments all part of an online store application.
The incremental nature really helps to follow the examples.
The complex routing example explains how to decouple the application further routing different types of messages to multiple queues.
The final section "Go Forth and Multiply" (rabbits again!) talks about more advanced issues which are not covered in detail here, but links are provided to relevant information on Clustering and Mirroring, Error handling and Recovery, AMQP connections (being resource limited), Heartbeats, Reconnects etc. These are real world issues for serious deployments that are acknowledged if not treated in detail.
This section finishes with a list of useful Architecture and Performance hints.