What is ColonyOS?

ColonyOS is an open-source project developed by RISE AB aiming at implementing a Meta-Operating System to offer a unified programming model to execute workloads across platforms—from traditional cloud infrastructures and HPC to emergent Edge platforms.

ColonyOS consists of several components:

  • Executors: Executors are responsible for executing tasks or computations. They can reside anywhere on the Internet and integrate with any platform, e.g. Kubernetes, HPC systems, a smart phone, or an IoT Device etc.
  • A Colony is a trusted network of Executors. Think of a Colony as an organization, like a company, where members inherently trust their peers.
  • Colonies Servers: Think of Colonies Servers as job centers; they help find the right task for an Executor, similar to how job centers find work for people. 
  • Colonies is a distributed computing framework that is used to implement Colony Servers and Executors

To utilize the system, users submit function specifications to a Colonies Server, typically using a CLI (Command Line Interface) or an SDK. These specifications, typically in JSON format, serve as high-level blueprints that outline future computations. Once submitted, these specifications are transformed into meta-processes and registered in a database that functions as a queue. The Colonies Server, acting as a broker, then assigns an Executor that meets the conditions specified in the function description to the meta-process. Once assigned, the Executor proceeds to execute the meta-process, effectively executing the functions detailed in the original specifications.

Remote Executors connect to the Colonies Server to get meta-process assignments. Since the progress of all processes is stored in a database, ColonyOS offers full traceability. Users can look up a process to check its current execution status, view its output, and access logs (stdout/stderr). It is also possible to subscribe on a certain process, e.g. to automatically get a notification when its execution status changes. This capability enables real-time monitoring, allowing users to stay updated on the progress of critical tasks.

Additionally, ColonyOS enables creation of workflows that define dependencies between multiple processes. For example, it is possible to specify that a particular process must be completed before another process can begin. This feature makes it possible to define and run complex workflows across platforms.