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 one of the country’s foremost software architects and Agile-transformation consultants. Allen speaks internationally about all things Agile and software architecture and provides in-house training and consulting in those areas. He’s also an expert-level programmer, specializing in Swift, Java, and Web 2.0 applications and microservices. Allen can build highly dynamic websites (along the lines of Gmail) from front to back: both the frontend code—JavaScript, JQuery, Angular, HTML5, and CSS3—that runs in the browser and the backend code—Java, PHP, MySQL, Ruby, Mongo, C++, ZeroMQ, and EC2—that runs either on your server or in the cloud. 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.