- decide at the last responsible moment - try the other stability patterns first. Decoupling Middleware is an architecural decision and ripples to all parts of the system. It is likely an irreversable decision.
- avoid many failure modes through total decoupling - the more you decouple servers, layers and applications the more adaptive your system will be.
- learn many architectures, and choose among them -- find the best architecture for the problem at hand.
Monday, April 19, 2010
Release It! - Chapter 5.8 Decoupling Middleware
Middleware is software that integrates systems that were never meant to be integrated. It integrates by passing data between two systems but also decouples the callers into the middleware from the details of the integrated systems. Middleware implemented in terms of synchronous calls are simpler to write but have the problem of blocking systems as they wait for reponses. Asynchronous middleware is harder to write but you don't have the "hurry up and wait" issues. Middleware is usually expensive and changing your mind from a synchronous model to an asychronous one is costly.