In the previous chapter, we saw that messaging is a key enabler of communication in scalable systems. It offers reliable asynchronous communication with one-to-one communication (queuing) as well as one-to-many (Pub/Sub) models.
In this chapter, we will look at messaging in detail, starting with theoretical constructs and doing deep-dives into two widely-used systems. We will cover the following topics:
- Performance characterization
- Broker-based messaging
- Apache Kafka deep dive
- Brokerless messaging
- NSQ deep-dive
- Integration patterns