An architecture is made up of sub-systems, and these sub systems must be built to reduce side effects outside of their intended functionality. The more side effects are produced by sub-systems, the more unpredictable and unmaintainable a system becomes.