Service Colonies: A Novel Architectural Style for Developing Software Systems with Autonomous and Cooperative Services
Thakshila Imiya Mohottige, Artem Polyvyanyy, Rajkumar Buyya, Colin Fidge, Alistair Barros
TL;DR
Modern distributed software systems struggle with complexity and runtime adaptability beyond centralized control. The paper introduces service colonies, a decentralized architectural style where autonomous inhabitants learn, adapt, and reconfigure collaboratively. It formalizes inhabitant characteristics, architecture, and operations (replication, split/join, link adjustments), and discusses benefits such as flexibility, fault tolerance, and scalability along with challenges like verification and data consistency. This bottom-up, swarm-like paradigm aims to reduce human intervention and improve resilience across microservice, cloud, edge, and IoT deployments.
Abstract
This paper presents the concept of a service colony and its characteristics. A service colony is a novel architectural style for developing a software system as a group of autonomous software services co-operating to fulfill the objectives of the system. Each inhabitant service in the colony implements a specific system functionality, collaborates with the other services, and makes proactive decisions that impact its performance and interaction patterns with other inhabitants. By increasing the level of self-awareness and autonomy available to individual system components, the resulting system is increasingly more decentralized, distributed, flexible, adaptable, distributed, modular, robust, and fault-tolerant.
