Identifying Domain-Based Cyclic Dependencies in Microservice APIs Using Source Code Detectors

Identifying Domain-Based Cyclic Dependencies in Microservice APIs Using Source Code Detectors

Abstract

Isolation, autonomy, and loose coupling are critical success factors of microservice architectures. Unfortunately, systems tend to become strongly coupled over time, sometimes even exhibiting cyclic communication chains, making the individual deployment of services challenging. Such chains are highly problematic when strongly coupled communication e.g.\ based on synchronous invocations is used, but also create complexity and maintenance issues in more loosely coupled asynchronous or event-based communication. Here, cycles only manifest on a conceptual or domain level, making them hard to track for algorithms that rely solely on static analysis. Accordingly, previous attempts to detect cycles either focused on synchronous communication or had to collect additional runtime data, which can be costly and time-consuming. We suggest a novel approach for identifying and evaluating domain-based cyclic dependencies in microservice systems based on modular, reusable source code detectors. Based on the architecture model reconstructed by the detectors, we derived a set of architectural metrics for detecting and classifying domain-based cyclical dependencies. By conducting two case studies on open-source microservice architectures, we validated the feasibility and applicability of our approach.

Grafik Top
Authors
  • Genfer, Patric
  • Zdun, Uwe
Grafik Top
Shortfacts
Category
Paper in Conference Proceedings or in Workshop Proceedings (Paper)
Event Title
15th European Conference on Software Architecture (ECSA) 2021
Divisions
Software Architecture
Subjects
Software Engineering
Event Location
virtual
Event Type
Conference
Event Dates
13-17 Sep 2021
Date
2021
Export
Grafik Top