Architecture for High Availability Systems