Fathym
Menu

Composition Patterns

Everything is a holon - whole and part. Composition is how the parts assemble into larger wholes without losing what they are.

The holonic hierarchy

Steward (root)
├── Operations   (strategy)
├── Capabilities (behavioral)
├── Agents       (behavioral)
├── Workflows    (behavioral)
└── Governance   (cascades down)

The Steward is the container. Operations are the mutable strategy layer. Capabilities, Agents, and Workflows are the behavioral holons they compose.

Vertical vs horizontal

  • Vertical (parent → child): an Operation composes Capabilities and Agents; a Steward composes Operations. The standard nesting.
  • Horizontal (peer → peer): Merge combines peer Stewards. Operations, Capabilities, and Agents merge by name (a later definition overrides an earlier one); all OnInit handlers run. Governance is NOT merged - each entity keeps its own, per the no-aggregation rule.
const AdminPlane = Merge(AuthPlane, UserPlane, AuditPlane);

The governance cascade

When a Steward runs an Operation, guardrails evaluate in order, and all must accept for execution to proceed:

  1. Operation self-governance
  2. Capability self-governance
  3. Agent self-governance
  4. Engine governance (from the Steward's defaults)

Each level governs itself; nothing silently reaches across a boundary.

Which entity do I use?

Use...When
AgentThe work needs an AI/LLM, or spawns an external tool
CapabilityA reusable, deterministic tool or cross-cutting concern
OperationA strategy composing capabilities / agents / sub-operations
WorkflowMulti-step work with state, approval gates, or persistence
GovernanceAccess control, validation, a policy you attach
StewardThe root container that hosts and runs them all

A quick decision tree: needs AI? → Agent. Otherwise a reusable tool? → Capability (with output hooks if callers need to interact with a resource). Otherwise a strategy composing others? → Operation (→ Workflow if it's multi-step with durable state). The container around all of it is always the Steward.


On this page