How does Mule enforce decoupling?
Decoupling refers to having each component in the system totally independent (and oblivious) to other components in the system. The advantage of decoupled systems is that components can be added, enhanced, or removed, causing little or no disruption to other components. Decoupled systems built on messaging are inherently fault-tolerant because of the autonomous nature of the components and the fault tolerance of the underlying message server, such as persistent queues, durable subscribers, and replication using load balancing. Mule decouples your components from the complex infrastructure details of your application. Your components can concentrate on core business functionality while Mule handles all the details of transforming, routing, and delivering business data around your application.