Table of Contents
Fetching ...

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.

Service Colonies: A Novel Architectural Style for Developing Software Systems with Autonomous and Cooperative Services

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.
Paper Structure (9 sections, 7 figures)

This paper contains 9 sections, 7 figures.

Figures (7)

  • Figure 1: Self-adaptive system architecture
  • Figure 2: An example service colony architecture
  • Figure 3: Inhabitant architecture
  • Figure 4: Service colony after merging
  • Figure 5: Service colony after splitting
  • ...and 2 more figures