A proposed catalog of development patterns for fault-tolerant microservices - Miranda, Fábio de Souza; Santos, Daniel Saavedra dos; Vilela, Ricardo Ferreira; Assunção, Wesley Klewerton Guez; Santos, Reginaldo Cordeiro dos; Pinto, Victor Hugo Santiago Costa (Anais do Simpósio Brasileiro de Qualidade de Software (SBQS); 2024: Anais do XXIII Simpósio Brasileiro de Qualidade de Software, 2024)
The microservices architecture enables software to be composed of small, independent services that communicate using well-defined APIs. Microservices promote scalability and agility in application development, accelerating the time-to-market for new features. While this model has gained prominence in the industry, there are challenges in understanding the intricacies of this architecture compared to monolithic systems, defining test scenarios focused on resilience, lacking a testing process tailored to the inherent challenges of this architecture, and classifying solutions that can be adopted proactively to avoid inconsistencies and resource unavailability. This work presents an initial catalog of patterns for developing fault-tolerant microservices. A literature review and an industry survey were conducted to classify the difficulties, strategies, and solutions contributing to developing resilient microservices. The study involved 23 highly experienced software engineers in this field. The results suggest a widespread difficulty in developing fault-tolerant microservices and defining a quality criterion. In this regard, the proposed classification can contribute to defining quality requirements and verification strategies.