A FRAMEWORK FOR RECONFIGURATION-BASED FAULT-TOLERANCE IN DISTRIBUTED SYSTEMS