Load Balancing: Health Checks, Routing Algorithms, and Failure Domains