Most distributed training systems react to node failures instead of anticipating them. The typical flow: node crashes → entire training halts → cluster reshuffles → restart from checkpoint. You've already burned cycles and money.

On consumer-grade hardware, failures aren't edge cases, they're the baseline. You can't bolt on fault tolerance as an afterthought. The architecture needs failure recovery baked into the protocol layer from day one, not tacked on as error handling.

Think erasure coding, redundant gradient computation, or async parameter updates that don't block on stragglers. If your training job assumes 100% uptime, you're designing for data center GPUs, not the real world of commodity nodes.