{'fraction_non_alphanumeric': 0.020572450805008944, 'fraction_numerical': 0.0, 'mean_word_length': 5.431034482758621, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A Method for Architectural Trade-off Analysis Based on Patterns: Evaluating Microservices Structural Attributes

Architectural patterns are powerful tools that assist software architects in the decision-making process, as they enable to identify the software domain, to satisfy quality attributes, and to create large-scale reuse design techniques. However, choosing the most appropriate patterns for a given project is a difficult task, because while there is a wide range of patterns, there is a lack of knowledge about them, among software architects. In order to mitigate this problem, we developed a systematic method for architectural trade-off analysis based on patterns. In order to demonstrate the application of this method, we conducted a study to identify architectural patterns of microservices that influence structural design decisions related to the size of services, database sharing, and level of service coupling. All in all, this method helps software architects to identify and understand the patterns that best suit the project needs, and that can guide the architecture in the desired direction.