Exploring high-availability and fault-tolerance