Chapter 9. Messaging Patterns
When Smalltalk was first envisioned, the communication between classes was envisioned as being messages. Somehow we've moved away from this pure idea of messages. We spoke a bit about how functional programming avoids side effects; well, much the same is true of messaging-based systems.
Messaging also allows for impressive scalability as messages can be fanned out to dozens or even hundreds of computers. Within a single application, messaging promotes low coupling and eases testing.
In this chapter, we're going to look at a number of patterns related to messaging. By the end of the chapter, you should be aware of how messages work. When I first learned about messaging, I wanted to rewrite everything using it.
We will be covering:
- What's a message anyway?
- Commands
- Events
- Request-reply
- Publish-subscribe
- Fan out and fan in
- Dead-letter queues
- Message replay
- Pipes and filters
What's a message anyway?
In the simplest definition, a message is a collection...