Skip to content

CCattlerContainer orchestration, redesigned.

A declarative container management system built on facts, relations, desired state, and reconciliation — not objects and YAML.

How it works ​

        USER
          |
          v
  +---------------+
  | DOMAIN LANG.  |    .cca files
  +-------+-------+
          |
          v
  +---------------+
  |  FACT STORE   |    etcd
  +-------+-------+
          |
  +-------+--------+
  |       |        |
  v       v        v
sched  network  storage    (controllers watch facts, derive actions)
  |       |        |
  +-------+--------+
          |
          v
  +---------------+
  | NODE AGENTS   |    one per machine, runs containers
  +-------+-------+
          |
          v
      MACHINES

The cluster stores facts (desired state, observed state, constraints), not objects. Controllers are rule engines that watch facts, compare desired vs actual, and derive actions. The reconciliation loop runs continuously:

facts → rules → new facts → actions → reality → observations → facts

CCattler vs Kubernetes ​

KubernetesCCattler
State modelAPI objects (Deployment, ReplicaSet, Pod...)Facts and relations
Config formatYAML serializing internal objectsDomain language expressing intent
ExtensibilityCRDs + custom controllersTyped facts + schemas + rules
NetworkingLabel selectorsIdentity-based policies
Multi-tenancyNamespaces (one concept for everything)Separate ownership, quotas, isolation
AutoscalingHPA/VPA/KEDA (separate systems)Unified scaling engine
SecurityRBAC on API resourcesRBAC + ABAC on fact prefixes

Configuration language ​

hcl
service web {
    image nginx:1.28
    instances 3
    expose 8080

    health {
        http /health
        every 10s
    }

    resources {
        cpu 500m
        memory 512Mi
    }

    scale {
        horizontal {
            min 3
            max 30
            target cpu = 60%
        }
    }

    placement {
        architecture amd64
        zone spread
    }
}

Released under the GPL-3.0 License.