David Dossot is a highly experienced software engineer and architect of close to two decades. Armed with knowledge of RabbitMQ gathered since 2009, he has written a fantastic book called RabbitMQ Essentials, a fast-paced tutorial that covers the fundamentals of RabbitMQ when used in Message Queuing. As a renowned developer, we asked David to share with us his approach to and experience with authoring a technology book with Packt. We also asked him for some of his insights and running thoughts on the current state and future development of RabbitMQ and Message Queuing. You can see his answers below and find more information about his book here.
Q. What initially attracted you to write your book for Packt Publishing?
Packt Publishing approached me with a project for a RabbitMQ book. Since it’s a technology I know quite well and appreciate a lot, and because the time was right, I decided to embark upon the adventure. Moreover, having never worked with Packt before, I was curious to experiment with a new publishing workflow.
Q. When you began writing, what were your main aims?
I wanted to produce a short book that would have a mix of high-level concerns, like architectural principles around messaging, and low-level concerns, like the technical details involved in dealing with RabbitMQ. I also wanted to make the book easy to read by telling the story of a fictitious company discovering RabbitMQ and rolling it out up to production.
Q. What did you enjoy most and what was most rewarding about the experience of writing?
I really enjoyed the pace at which the book was produced: three months of writing and an extra month of revisions and production was the fastest project I ever worked on. Progressing at such speed, without sacrificing the quality of the end product, was extremely rewarding.
Q. Why, in your opinion, is RabbitMQ exciting to discover, read, and write about?
RabbitMQ is an open source project with a very active community: I’m convinced that open source can use any coverage it can receive, so writing a book about it was a way for me to pay back a little for the great piece of software I have been using for free. Moreover, though there were already many excellent books written about it, none had the brevity and mix of high- and low-level concerns I was envisioning for my book.
Q. What is different about RabbitMQ from other open source message queuing software?
The richness and interoperability of the AMQP protocol is an important factor for RabbitMQ’s success. Another important factor is the solid engineering and sound design decisions that have been made by RabbitMQ’s creators. The fact that it’s built on Erlang brings some extra guarantees in terms of stability. Finally, the RabbitMQ team is excellent at offering powerful and complex features in an easy package: this is far from the norm in our industry.
Q. What do you see on the horizon for RabbitMQ and message queuing, as a whole?
RabbitMQ’s popularity will keep rising, especially via cloud offerings that relieve users from the tedium of maintaining their own servers. In general, the usage of message queuing is poised to increase as developers become more and more aware of the principles at play when building scalable applications. The recent Reactive Manifesto (http://www.reactivemanifesto.org/), which somewhat rehashes and refreshes old principles of software design, emphasizes the necessity to decouple application components: message queuing is one of the main ways to achieve this.
Q. Any tips for new authors?
Writing a book is a fractal process where you proceed in several passes, with a higher level of details each time. The following approach has worked very well for me so it may work for others too:
- Start with the table of contents (TOC): write down the main ideas for each chapter and pay attention to the overall narrative, making sure that ideas develop progressively and logically
- When you write a chapter, start by copy/pasting the ideas from the TOC and flesh them out a little: don’t write sentences yet but instead drop in notes and ideas for figures
- Prepare the code samples and capture screenshots of executing applications at that time
- Now you’re ready for the last pass: finalize the chapter by writing the complete text and creating any extra diagrams needed
Here are a few extra tips:
- Do not write in order: write paragraphs and even chapters in the way you feel most inspired to. This can relieve you from author’s block.
- The first chapter is the hardest to write: get ready to come back to it several times.
- Find some music that helps you write: sometimes when you’re be tired and have a hard time getting started, music can get you back on track.