In this chapter, we will build an application consisting of a set of small and independent components that communicate with each other over network protocols. Often, these so-called Microservice architectures are built using HTTP-based communication procotols, often in the form of RESTful APIs, which we've already implemented in Chapter 5, Creating a RESTful Web Service.
Instead of focusing on REST, in this chapter we will explore an alternative communication protocol that focuses on asynchronicity, loose coupling, and high performance: ZeroMQ. We will use ZeroMQ to build a simplecheckout service for an (entirely fictional) e-commerce scenario that will handle a wide range of concerns, beginning with e-mail messaging, order processing, inventory management, and more.