Reliability and Fault-Tolerance by Choreographic Design