Skip to Content
ArchitectureSystem model

System Model

TL;DR

cmdop’s system model is a three-layer separation: a client layer of heterogeneous operators (CLI, GUI, API, AI agents, automation), a transport layer of interchangeable carriers (SSH, WebSocket, HTTP, local socket), and an execution layer — the cmdop core — that owns the persistent, network-addressable, single-homed execution-state objects. Operators are distributed; the execution state is not. Clients never touch the runtime directly; they attach through transports to the execution layer, which holds the one live execution.

Layered diagram

Separation of concerns

  • Client layer — where operators live. Every operator attaches to the same live execution; none is a privileged controller, though authority is asymmetric and transferable (a human can take control). The layer is type-agnostic: a CLI and an AI agent are structurally identical participants attaching to the execution layer, as established in operator execution identity.
  • Transport layer — interchangeable carriers. No carrier owns state; carriers are bound and released by the attach/detach protocol. This is what enables transport-independent sessions, much as ZeroMQ messaging sockets decouple endpoint identity from physical connection.
  • Execution layer — the cmdop core. It owns execution-state objects and holds the one live, single-homed execution, playing the role the kernel plays in the Jupyter client-kernel split while generalizing it across many objects and many operators.

Mapping to known systems

The split is the IPython kernel protocol boundary promoted to a continuity layer: where IPython has one kernel and one or more front-ends over fixed channels, cmdop has a coordinator managing many persistent objects, each a single-homed live execution, reachable from any client over any transport. The access is distributed even though each execution is single-homed. Isolation primitives (Firecracker microVM, gVisor) sit underneath the execution layer as the tenancy boundary, not as the model itself.

TAGS: system-model, layering, separation-of-concerns, architecture DEPENDS_ON: [architecture/execution-state-object, architecture/protocols]

Last updated on