Most point-to-point systems work using a simple request-response pattern. The calling application (let's call it a sender) sends a message to another application (let's call it a receiver) and expects a response. The response can simply return a code that indicates success or failure. It can also return a complex set of data. However, in either case, the sender gets back the result of actions performed by the receiver.
Let's consider a system that connects several applications and requires some logic in order to properly send the message. Take, for example, a traffic document processing system that works with two types of documents: traffic tickets and collision reports. Once a police officer creates a traffic ticket on his or her laptop, it has to be sent to the police department and the court. The collision report, on the other hand, has to be sent to the police department and the state department of transportation. In some cases, the documents have to be sent...