
"Johan Nilsson" wrote:
H. S. Lahman list available options and argues that passing anything else than values is dangerous and causes high coupling: http://groups.google.ca/groups?selm=3B86C364.AB1A6066%40worldnet.att.net (the paragraphs starting with "pure message").
If you use well-defined interfaces I can't see how that would cause any higher coupling than during normal circumstances (remoting aside). A pretty common usage would be implementing the Observer pattern cross-process.
What I mean is: I am interface A and I call interface B. I pass interface C and B will call C. Now B needs to handle all possible C exceptions. Some exceptions may be passed back to A (depending on implementation). Now also A needs to know about C and how to deal with its problems. If there are only asynchronously passed values one needs to guard timeouts and watch internal state machine of A correct. Added complexity in B, C, ... doesn't spill (much) into A. /Pavel