Chapter 10. Messaging Patterns
When Smalltalk, the first real object oriented programming language, was first developed, 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 the following topics:
- What's a message anyway?
- Commands
- Events
- Request-reply
- Publish-subscribe
- Fan out
- Dead letter queues
- Message replay
- Pipes and filters