Litcius/Paper detail

Designing Microservice Systems Using Patterns: An Empirical Study on Quality Trade-Offs

Guilherme Vale, Filipe Figueiredo Correia, Eduardo Guerra, Thatiane de Oliveira Rosa, Jonas Fritzsch, Justus Bogner

202241 citationsDOIOpen Access PDF

Abstract

The promise of increased agility, autonomy, scalability, and reusability has made the microservices architecture a de facto standard for the development of large-scale and cloud-native commercial applications. Software patterns are an important design tool, and often they are selected and combined with the goal of obtaining a set of desired quality attributes. However, from a research standpoint, many patterns have not been widely validated against industry practice, making them not much more than interesting theories. To address this, we investigated how practitioners perceive the impact of 14 patterns on 7 quality attributes. Hence, we conducted 9 semi-structured interviews to collect industry expertise regarding (1) knowledge and adoption of software patterns, (2) the perceived architectural trade-offs of patterns, and (3) metrics professionals use to measure quality attributes. We found that many of the trade-offs reported in our study matched the documentation of each respective pattern, and identified several gains and pains which have not yet been reported, leading to novel insight about microservice patterns.

Topics & Concepts

Computer scienceMicroservicesDocumentationReusabilityQuality (philosophy)ScalabilityArchitectural patternSoftware engineeringAutonomyScale (ratio)Software qualitySet (abstract data type)Software architectureSoftware design patternEmpirical researchData scienceCloud computingSoftwareSoftware developmentSoftware designDatabaseEpistemologyPhilosophyQuantum mechanicsOperating systemPhysicsLawPolitical scienceProgramming languageSoftware System Performance and ReliabilitySoftware Engineering ResearchCloud Computing and Resource Management