Discussion (what it means or how it might be applied) {{renderer :wordcount_}}

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.

Reducing side effects makes it easier to fight the tendency of a system towards entropy. One can think of side effects as “leaks” that may be harmless but have some probability of being harmful, especially at scale. Examples of side effects could be heat and sound in hardware systems, whereas in software it will mean any change to state caused by the function that is not the output of the function.