Rather than software components being centralized within a system, they are modularized and deployed anywhere within a network, with communication coordinated by messages passed among components.