Implementing messaging and queues on Kubernetes
For messaging, we will be implementing RabbitMQ, an open source message queue system that supports Kubernetes. Messaging systems are typically used in applications to decouple various components of the application in order to support the scale and throughput, as well as asynchronous patterns such as retries and service worker fleets. For instance, instead of one service calling another service directly, a service could place a message onto a persistent message queue, at which point it would be picked up by a worker container that is listening to the queue. This allows for easy horizontal scaling and greater tolerance of entire component downtime as compared to a load balancing approach.
RabbitMQ is one of many options for message queues. As we mentioned in the first section of the chapter, RabbitMQ is an industry-standard option for message queues, not necessarily a queue system built for Kubernetes specifically. However, it's...