In recently finished RabbitMQ In Depth by Gavin M. Roy.
Apache Kafka has been quite hyped for a while now, but RabbitMQ can solve some of the same problems and comes with OTP-goodness since it's written in Erlang.
Log vs. queue
Kafka uses an immutable log whereas RabbitMQ is a first in, first out queue. This means that the two is not the same beast at all. But often they are compared directly when people are wondering what components to but into their event driven systems. Erlang Solutions have you covered if you want the learn the differences.
Roy's book is a fantastic introduction to RabbitMQ! It's got an appropriate amount of basics and then moves on to more advanced stuff, while givin tips on real world problems and gotchas you might run into.
Comes with a Jupyter notebook
RabbitMQ In Depth has a companion repository containing a Jupyter notebook that you can run using VirtualBox and Vagrant. That way you can run the example code from the book and see that it work.
This also gives you the oppertunity to write implementations in your favorite language (Elixir for example 😉) and run it againt the RabbitMQ instance in the VM.