Data-driven Understanding of Design Decisions in Pattern-based Microservices ArchitecturesResearch Track Paper
The adoption of architectural patterns has recently been assessed in relation to their impact on the performance of microservice-based applications. For example, offloading common functionalities of multiple microservices to a gateway may lead to a system response time improvement. However, for a given system requirement, e.g., the latency of services or the resources’ utilization, the benefit of choosing an architectural pattern is not guaranteed. Therefore, it becomes important to collect data about the parameters that contribute to the effective use of patterns, thus understanding the relationships between design decisions and performance requirements. In this work, we propose a data-driven approach to assess the quantitative impact of design decisions for a given pattern on the achievement of performance tradeoffs. Furthermore, our approach seeks to control the pattern parameters that cause variations (i.e., sensitivity) in performance tradeoffs. Starting from a dataset including parameters related to three microservices patterns (i.e., Gateway Offloading, Command and Query Responsibility Segregation, and Anti- corruption Layer) and their performance characteristics, we do apply machine learning techniques (i.e., PRIM and CART) to infer constraints on the parameter values that help to understand and reduce the performance sensitivity of pattern configurations. Our results support architects in making informed decisions about tradeoffs by providing insights on the parameters related to the behavior of microservices patterns.