What considerations do you take into account when designing a system for high availability and fault tolerance?