So, I'm sure people want to know more of my opinions. I've been a long-standing advocate of pushing complexity out of the network as much as possible. First though, let's talk about the network and think of it as closer to a sphere. For the sake of reasoning, the "edge" is the core of the sphere, and the computers cover the surface of the sphere. First, let's talk about the common case failures. As failures get closer to the core of the sphere, they inherently introduce more risk, because they end up propagating in all directions equally, as opposed to a failure at a point on the edge - which propagates to far fewer nodes in comparison.
Complexity & Failures: Complexity will cause failures. It typically falls under the special causes, where something that you didn't predict blindsides you. The key to this is not concentrating complexity. As to the earlier analogy, by concentrating fault domains in the center of the sphere, you inherently introduce more risk. This, of course, assumes that the failures at han