Engineering the Future of Software
November 13–14, 2016: Training
November 14–16, 2016: Tutorials & Conference
San Francisco, CA

Lightweight messaging and interservice communication with ZeroMQ

Allen Holub (Holub Associates)
9:00am–12:30pm Monday, 11/14/2016
Microservices, pros and cons
Location: California East Level: Intermediate
Average rating: ***..
(3.40, 5 ratings)

Prerequisite knowledge

  • An understanding of an OO language (The session examples are in Java but are easily understood if you know C++, C#, Swift, or a similar language.)

Materials or downloads needed in advance

  • A laptop with your favorite development environment and a current version of ZeroMQ installed (Instructions—Be sure to install the language bindings for whatever language you plan to use in addition to the main package. Instructions are at the bottom of that web page. If you're installing on a Mac, the easiest approach is to install Homebrew and issue a "brew install zeromq" from the command line. You'll still need to install the language bindings as a separate step.)
  • Make a local copy of the ZeroMQ documentation (The ZGuide is the main, high-level documentation and includes many example programs. Find the technical documentation for the C APIs here. Documentation for other languages is included in the language-binding download.)

What you'll learn

  • Learn what messaging is, how to use it effectively, and the basics of implementing a messaging system using ZeroMQ


Messaging is an essential technology in all high-volume, dynamically scalable server applications. Messaging is also the backbone of microservices architectures, providing the most effective way to pass non-time-critical information between servers and distribute work within a server farm. At the interserver level, messaging is ideal for use with remote databases, logging, monitoring, and so forth and is a far better solution to intraserver data sharing than a shared database. Messaging is also quite useful in Agile development, even within a single application, because of the way that it decouples subsystems thereby facilitating multiteam (and distributed-team) projects.

Allen Holub discusses messaging from both an architectural and practical perspective and provides a practical introduction to ZeroMQ—the best of the lightweight messaging frameworks to implement common messaging patterns. Allen dives into what messaging is, messaging topology for various common scenarios, and basic programming. You’ll then build a small messaging system in class, using the language of your choice. (ZeroMQ supports pretty much everything.)

Photo of Allen Holub

Allen Holub

Holub Associates

Allen Holub is an internationally recognized software architect and Agile transformation consultant. He speaks about Agile and Agile-friendly implementation technology (like microservices) and architecture and provides in-depth consulting and training in those areas. He excels at building highly functional Lean/Agile organizations and designing and building robust, highly scalable software suitable for Agile environments. Over his career, he’s worn every hat from CTO to grunt programmer and is an expert-level programmer in many languages and platforms. Allen is widely published. His works include 10 books, hundreds of articles in publications ranging from Dr. Dobb’s Journal to IBM DeveloperWorks, and video classes for (Agility with Allen), Pluralsight (Swift in Depth, Picturing Architecture, Object-Oriented Design), O’Reilly (Design Patterns in the Real World), and Lynda/LinkedIn (forthcoming).