An architectural approach that separates a larger system's functionality into many independent, collaborating systems.