Table of Contents
Fetching ...

Microservices Are Dying, A New Method for Module Division Based on Universal Interfaces

Qing Wang, Yong Zhang

TL;DR

The paper addresses the problem that microservices fail to guarantee complete module independence due to dependency diffusion. It introduces the Impact Scope Metric ($ISM$) to quantify how changes propagate across an Application ($A_{aname}$), its Modules ($M_{mid}$), and Services ($S_{sid}$) under static, runtime, and non-runtime contexts, and derives independence conditions via Theorem 1 and related corollaries. Building on this, it proposes the Substance-Connection Model ($SCM$) and Similar-Concept Interfaces ($SCI$) to realize truly independent modules connected at runtime through universal interfaces, forming an ideal system where developers can remain ignorant of other modules’ implementations. The instantiated platform, EIGHT, demonstrates in-process dynamic loading/unloading and bridging via scripts, backed by a runtime linker and a set of 15 SCIs, enabling flexible module composition and deployment with lower resource use and easier maintenance than microservices. Collectively, the work offers a new architectural path beyond microservices and monoliths, combining modularity metrics, runtime decoupling, and universal-interfaces-based module division to support highly dynamic, resource-constrained environments.

Abstract

Although microservices have physically isolated modules, they have failed to prevent the propagation and diffusion of dependencies. To trace the root cause of the inter-module coupling, this paper, starting from the impact assessment approach for module changes, proposes a conceptual method for calculating module independence and utilizes this method to derive the necessary conditions for module independence. Then, a new system design philosophy and software engineering methodology is proposed, aimed at eliminating dependencies between modules. A specific pattern is employed to design a set of universal interfaces, serving as a universal boundary between modules. Subsequently, this method is used to implement a platform architecture named EIGHT, demonstrating that, as long as module independence is guaranteed, even a monolithic application within a single process can dynamically load, unload, or modify any part at runtime. Finally, the paper concludes that this architecture aims to explore a novel path for increasingly complex systems, beyond microservice and monolithic architectures.

Microservices Are Dying, A New Method for Module Division Based on Universal Interfaces

TL;DR

The paper addresses the problem that microservices fail to guarantee complete module independence due to dependency diffusion. It introduces the Impact Scope Metric () to quantify how changes propagate across an Application (), its Modules (), and Services () under static, runtime, and non-runtime contexts, and derives independence conditions via Theorem 1 and related corollaries. Building on this, it proposes the Substance-Connection Model () and Similar-Concept Interfaces () to realize truly independent modules connected at runtime through universal interfaces, forming an ideal system where developers can remain ignorant of other modules’ implementations. The instantiated platform, EIGHT, demonstrates in-process dynamic loading/unloading and bridging via scripts, backed by a runtime linker and a set of 15 SCIs, enabling flexible module composition and deployment with lower resource use and easier maintenance than microservices. Collectively, the work offers a new architectural path beyond microservices and monoliths, combining modularity metrics, runtime decoupling, and universal-interfaces-based module division to support highly dynamic, resource-constrained environments.

Abstract

Although microservices have physically isolated modules, they have failed to prevent the propagation and diffusion of dependencies. To trace the root cause of the inter-module coupling, this paper, starting from the impact assessment approach for module changes, proposes a conceptual method for calculating module independence and utilizes this method to derive the necessary conditions for module independence. Then, a new system design philosophy and software engineering methodology is proposed, aimed at eliminating dependencies between modules. A specific pattern is employed to design a set of universal interfaces, serving as a universal boundary between modules. Subsequently, this method is used to implement a platform architecture named EIGHT, demonstrating that, as long as module independence is guaranteed, even a monolithic application within a single process can dynamically load, unload, or modify any part at runtime. Finally, the paper concludes that this architecture aims to explore a novel path for increasingly complex systems, beyond microservice and monolithic architectures.

Paper Structure

This paper contains 14 sections, 3 equations, 10 figures, 2 tables.

Figures (10)

  • Figure 1: Application Structrue
  • Figure 2: Application Refactoring
  • Figure 3: Substance-Connection Model
  • Figure 4: Similar Concepts in Concern
  • Figure 5: The Main Parts of EIGHT
  • ...and 5 more figures