Chapter 8. Messaging and Integration Patterns
If scalability is about splitting, systems integration is about rejoining. In the previous chapter, we learned how to distribute an application, fragmenting it across several machines. In order for it to work properly, all those pieces have to communicate in some way, and hence, they have to be integrated.
There are two main techniques to integrate a distributed application: one is to use a shared store as a central coordinator and keeper of all the information, the other one is to use messages to disseminate data, events, and commands across the nodes of the system. This last option is what really makes the difference when scaling distributed systems, and it's also what makes this topic so fascinating and sometimes complex.
Messages are used in every layer of a software system. We exchange messages to communicate on the Internet, we can use messages to send information to other processes using pipes, we can use messages within an application as...