Um Catálogo de Requisitos Não-Funcionais e Padrões Arquiteturais para Microsserviços - Veronez, Marcio (2022)
Non-functional requirements such as high availability, redundancy, and scalability are cited in the literature as motivations and advantages for migrating from a monolithic architecture to microservices. The use of architectural patterns can help meet these requirements. However, it is unclear which non-functional requirements should be prioritized prior to the migration process and what positive and negative impact the choice of certain architectural patterns may have on these requirements. A catalog of non-functional requirements and architectural patterns could help in planning migrations or restructurings from a monolithic to a microservices architecture. This study describes the key non-functional requirements that are important in scenarios of migration from monolithic systems to microservices, and architectural patterns that can help operationalize these requirements. To this end, we first map the motivations and driving forces that justify migrations from monolithic systems to microservices to non-functional requirements through a systematic mapping in the literature. Next, architectural patterns that can be used to satisfy the non-functional requirements are identified in the literature, along with the impact of choosing each pattern. These tradeoffs are analyzed using the NFR framework. Finally, the information is organized into a catalog that is evaluated through its implementation in scenarios of migration or restructuring to microservices. As a result, we have a catalog with 13 identified non-functional requirements, 89 architectural patterns, and Softgoals Interdependence Graphs for each requirement. The evaluations show that the catalog is viable and can help in eliciting non-functional requirements and selecting patterns in the context of migration or restructuring to microservices.