More on this book
Community
Kindle Notes & Highlights
by
Hohpe Gregor
Read between
March 16 - May 10, 2021
Channel Adapter (127) How can you connect an application to the messaging system so that it can send and receive messages? Channel Purger (572) How can you keep leftover messages on a channel from disturbing tests or running systems?
Command Message (145) How can messaging be used to invoke a procedure in another application?
Control Bus (540) How can we effectively administer a messaging system that is distributed across multiple platforms and a wide geographic area?
Datatype Channel (111) How can the application send a data item such that the receiver will know how to process it?
Envelope Wrapper (330) How can existing systems participate in a messaging exchange that places specific requirements, such as message header fields or encryption, on the message format?
Event Message (151) How can messaging be used to transmit events from one application to another?
Message Bus (137) What architecture enables separate applications to work together but in a decoupled fashion such that applications can be easily added or removed without affecting the others?
Message Channel (60) How does one application communicate with another using messaging?
Smart Proxy (558) How can you track messages on a service that publishes reply messages to the Return Address specified by the requestor?
What we need is something like File Transfer (43) in which lots of little data packets can be produced quickly and transferred easily, and the receiver application is automatically notified when a new packet is available for consumption. The transfer needs a retry mechanism to make sure it succeeds.
One application should be able to send a packet of data to another application to invoke behavior in the other application, like Remote Procedure Invocation (50), but without being prone to failure. The data transfer should be asynchronous so that the sender does not need to wait on the receiver, especially when retry is necessary.
Asynchronous messaging is fundamentally a pragmatic reaction to the problems of distributed systems. Sending a message does not require both systems to be up and ready at the same time. Furthermore, thinking about the communication in an asynchronous manner forces developers to recognize that working with a remote application is slower, which encourages design of components with high cohesion (lots of work locally) and low adhesion (selective work remotely). Messaging systems also allow much of the decoupling you get when using File Transfer (43). Messages can be transformed in transit without
...more

