Table of Contents
Fetching ...

ModARO: A Modular Approach to Architecture Reconstruction of Distributed Microservice Codebases

Oscar Manglaras, Alex Farkas, Thomas Woolford, Christoph Treude, Markus Wagner

TL;DR

ModARO tackles the challenge of architectural drift in distributed microservice systems by introducing a modular, technology-agnostic reconstruction framework. It enables writing reusable extractors that communicate through a shared architecture model and supports distributed reconstruction via model aggregation and retroactive linking. Case studies on ten GitHub projects and a user study with industry practitioners demonstrate broad reconstructability, extractor reusability, and favorable usability compared with a state-of-the-art baseline. The work highlights both the practicality of distributed reconstruction in CI/CD contexts and the need for richer link semantics and parsing capabilities to further enhance reuse and accuracy.

Abstract

Microservice architectures promote small, independently developed services, but increase overall architectural complexity. It is crucial that developers understand the architecture and how changes to a service affect the overall system, but rapid and independent development of services increases the risk of architectural drift and discourages the creation and maintenance of documentation. Automatic architecture reconstruction can help avoid these issues, but it is difficult to reuse reconstruction code across multiple projects, as all use different combinations of technologies and project-specific conventions. Reconstruction of architecture-level details is further complicated by the tendency to split microservices into separate repositories, preventing a full view of the system from any one codebase. In this paper, we present and evaluate ModARO, an approach to microservice architecture reconstruction that allows writing modular reconstruction code ('extractors') for any technologies and reusing them across different projects, independent of the surrounding technology stack or whether or not the services are split into multiple codebases. We demonstrate the effectiveness of our approach by configuring ModARO to reconstruct 10 open source projects, and we validate the usefulness and usability of ModARO against a state-of-the-art baseline in a user study with 8 industry practitioners. Using this approach, developers can assemble or create extractors tailored to their technology stacks and distribute architecture reconstruction across repositories, enabling integration into repository CI/CD pipelines.

ModARO: A Modular Approach to Architecture Reconstruction of Distributed Microservice Codebases

TL;DR

ModARO tackles the challenge of architectural drift in distributed microservice systems by introducing a modular, technology-agnostic reconstruction framework. It enables writing reusable extractors that communicate through a shared architecture model and supports distributed reconstruction via model aggregation and retroactive linking. Case studies on ten GitHub projects and a user study with industry practitioners demonstrate broad reconstructability, extractor reusability, and favorable usability compared with a state-of-the-art baseline. The work highlights both the practicality of distributed reconstruction in CI/CD contexts and the need for richer link semantics and parsing capabilities to further enhance reuse and accuracy.

Abstract

Microservice architectures promote small, independently developed services, but increase overall architectural complexity. It is crucial that developers understand the architecture and how changes to a service affect the overall system, but rapid and independent development of services increases the risk of architectural drift and discourages the creation and maintenance of documentation. Automatic architecture reconstruction can help avoid these issues, but it is difficult to reuse reconstruction code across multiple projects, as all use different combinations of technologies and project-specific conventions. Reconstruction of architecture-level details is further complicated by the tendency to split microservices into separate repositories, preventing a full view of the system from any one codebase. In this paper, we present and evaluate ModARO, an approach to microservice architecture reconstruction that allows writing modular reconstruction code ('extractors') for any technologies and reusing them across different projects, independent of the surrounding technology stack or whether or not the services are split into multiple codebases. We demonstrate the effectiveness of our approach by configuring ModARO to reconstruct 10 open source projects, and we validate the usefulness and usability of ModARO against a state-of-the-art baseline in a user study with 8 industry practitioners. Using this approach, developers can assemble or create extractors tailored to their technology stacks and distribute architecture reconstruction across repositories, enabling integration into repository CI/CD pipelines.
Paper Structure (40 sections, 14 figures, 6 tables)

This paper contains 40 sections, 14 figures, 6 tables.

Figures (14)

  • Figure 1: A trivial example of an extractor that run on microservice entities using our JavaScript implementation. It tests if the microservice source code contains any Java files, and if so it sets java field in the model entity to true.
  • Figure 2: The reconstruction algorithm. This is run on each model entity.
  • Figure 3: An example of two extractors that could run on the same project. The first creates the model entity that triggers the second. Figure \ref{['fig:model/in-out']} shows the contents of the model before and after being passed to the extractors.
  • Figure 4: The initial and final form of the model passed to the extractors in Figure \ref{['fig:extractors/in-out']}.
  • Figure 5: An example of model aggregation. Non-relevant fields like $TYPE have been removed for brevity.
  • ...and 9 more figures