This dissertation focuses on creating a fault-tolerance linguistic structure for distributed applications, addressing the complexity and reliability issues inherent in modern software. It introduces a novel structuring technique along with a special-purpose recovery language to manage error recovery and reconfiguration, enabling a clear separation of fault-tolerance logic from functional code. The work also includes the development of a prototype architecture and discusses various case studies, reliability models, and simulations to demonstrate the effectiveness of the proposed approach.