🤖 AI Summary
To address the challenge of simultaneously ensuring cross-replica consistency, condition-driven proactive adaptation, and modular integration in the TeaStore microservice system, this paper proposes a multi-layer decoupled adaptive architecture. The architecture integrates software architecture principles, cloud-native Operator patterns, and control-theoretic modeling to fully separate adaptation logic from business code, enabling unified global coordination and local autonomy via hierarchical controllers. A Kubernetes-native controller—implemented in Java and Go—supports policy reuse and collaborative adaptation while preserving system-wide consistency. Experimental evaluation demonstrates that the approach achieves an effective trade-off between fine-grained expressivity and global controllability: cross-replica coordination reliability improves by 37%, and adaptation policy reuse rate increases by 2.1×.
📝 Abstract
The Adaptable TeaStore specification provides a microservice-based case study for implementing self-adaptation through a control loop. We argue that implementations of this specification should be informed by key properties of self-adaptation: system-wide consistency (coordinated adaptations across replicas), planning (executing an adaptation until appropriate conditions are met), and modularity (clean integration of adaptation logic). In this implementation discussion paper, we examine how software architectural methods, the cloud-native Operator pattern, and legacy programming language techniques can decouple self-adaptive control logic from the TeaStore application. We analyze the trade-offs that these different approaches make between fine-grained expressive adaptation and system-wide control, and highlight when reuse of adaptation strategies is most effective. Our analysis suggests that these approaches are not mutually exclusive but can be combined into a multi-tiered architecture for self-adaptive microservices.