A framework for self healing systems (2024)
Today’s software systems face significant challenges in maintaining stability in the face of unforeseen disruptions, resulting in substantial costs. Existing self-healing solutions primarily target known or anticipated failures, leaving systems vulnerable to unforeseen states. This project presents a modular framework for dynamic self-healing systems capable of addressing unforeseen error states through adaptive recovery strategies. By integrating continuous monitoring with Reinforcement Learning (RL), the framework detects disruptions based on a few predicates and learns corrective actions to restore system stability. The framework uses the foundations of Context-Oriented Programming (COP) for dynamic adaptation and employs the Scala programming language along with the REScala library to improve reactivity. Validation was performed using two case studies programmed in this project using already existing REScala application references: a graphical design application and a productivity task management system, demonstrating the framework’s ability to adapt to diverse reactive environments. This project lays the foundation for building more resilient self-healing systems that autonomously learn recovery strategies, reducing the reliance on predefined error handling mechanisms. The modularity and scalability of the framework aim to simplify integration across multiple domains, ensuring robustness and flexibility in reactive software systems.