Abstract As mission-critical computer-based systems grow in size, they must provide increasing levels of flexibility to address evolving requirements and cater for rapidly changing operational conditions. In this context, dynamic adaptation appears as a powerful enabler to allow these systems to change while maintaining their services, a key requirement in large long-running applications. Because they are mission-critical, these systems must also adapt to evolving threats, and be able to react to changes in service priorities, which naturally leads to the need for adaptive fault tolerance, a notion formulated a decade ago. Unfortunately, and in spite of a number of pioneering works, adaptive fault tolerance remains a challenging and poorly understood area, with a number of technological roadblocks preventing wide industrial adoption. |