Graph-based Anti-Pattern Detection in Microservice Applications

Amund Lunke Røhne, Ben Pronk, Benny Åkesson · 2024

Features of microservice architectures, such as scalability, separation of concerns, and their ability to facilitate the rapid evolution of polyglot systems, have made them popular with large organizations employing many software developers. However, the features that make them attractive also create complexity and require maintenance over the evolution of an application, especially concerning application decomposition. Mi-croservice architecture decomposition evolves together with the application and is prone to errors referred to as architectural anti-patterns over its lifetime. These can be difficult to detect and manage because of their informal natural language definitions and a lack of automated tooling. This paper addresses this challenge by proposing an automated methodology for detection of architectural anti-patterns related to microservice dependencies. As a part of this methodology, a novel Granular Hardware Utilization-Based Service Dependency Graph (GHUBS) model is automatically inferred from telemetry data. Three commonly known anti-patterns have been formalized and algorithms provided to detect them in the model. The methodology is supported by an open-source tool that automatically detects and visualizes anti-patterns. The proposed methodology and tool are validated using both synthetic data and a case study of a popular microservice benchmarking suite, showing that instances of the formalized anti-patterns can be successfully detected.

Read the paper · More papers on PaperTik