distributed fault tolerance paradigms 2825362