Experimental evaluation of architectural software performance design patterns in microservices
Willem Meijer, Catia Trubiani, Aldeida Aleti
TL;DR
This work addresses the challenge of quantifying how architectural design patterns in microservice systems affect performance under heterogeneous workloads. It builds a realistic cloud-based testbed and implements three patterns—Gateway Aggregation, Gateway Offloading, and Pipes and Filters—to collect real performance measurements and compare them against model-based predictions from prior queuing-network analyses. The study finds strong global agreement between theory and experiment in behavior, but notable deviations in absolute values, particularly for CPU utilization and bottleneck transitions, highlighting the necessity of empirical validation. Overall, the results advocate a continuous feedback loop between theoretical models and experimental data to improve the accuracy and reliability of performance predictions for microservice design patterns, with practical guidance for software architects and performance engineers.
Abstract
Microservice architectures and design patterns enhance the development of large-scale applications by promoting flexibility. Industrial practitioners perceive the importance of applying architectural patterns but they struggle to quantify their impact on system quality requirements. Our research aims to quantify the effect of design patterns on system performance metrics, e.g., service latency and resource utilization, even more so when the patterns operate in real-world environments subject to heterogeneous workloads. We built a cloud infrastructure to host a well-established benchmark system that represents our test bed, complemented by the implementation of three design patterns: Gateway Aggregation, Gateway Offloading, Pipe and Filters. Real performance measurements are collected and compared with model-based predictions that we derived as part of our previous research, thus further consolidating the actual impact of these patterns. Our results demonstrate that, despite the difficulty to parameterize our benchmark system, model-based predictions are in line with real experimentation, since the performance behaviors of patterns, e.g., bottleneck switches, are mostly preserved. In summary, this is the first work that experimentally demonstrates the performance behavior of microservices-based architectural patterns. Results highlight the complexity of evaluating the performance of design patterns and emphasize the need for complementing theoretical models with empirical data.
