January 27, 2026
Xyn Terminology: Blueprints, Modules, Bundles, and the Plan-Always Control Plane
Xyn is a platform builder designed for safe AI-native operations, and that begins with strict, shared terminology. This article defines the core objects that make Xyn work—including SolutionBlueprintSpecs, ModuleSpecs, Capability Contracts, BundleSpecs, BlueprintInstances, ReleaseSpecs, RuntimeSpecs, ReleasePlans, Operations, and ReleaseStatus—and explains how they relate through a “plan-always” control plane workflow. It also includes updated Mermaid diagrams showing how intent moves from solution design into reusable modules, compiled bundles, and finally into deterministic runtime deployment, as well as how xyn-seed manages long-running services via planning, applying, and reconciliation.
Xyn is designed as a platform builder for an AI-native world — not merely as a single application runtime. That distinction matters, because platform building requires a consistent vocabulary for:
- design-time intent (what we want to build)
- composition-time intent (how reusable components are selected and assembled)
- deployment-time intent (what should run)
- run-time orchestration (what is actually running)
This article defines the core terminology used across Xyn and presents diagrams showing how the system’s objects and processes connect. The aim is to provide a stable conceptual map for both development and operations, especially as Xyn evolves into a full control plane for long-running services.
Core design philosophy
Before exploring terminology, a few invariants clarify why these objects exist.
1) Declarative desired state
In Xyn, long-running services are represented as data. Desired outcomes (what should exist and how it should behave) must be expressible in a structured, machine-readable form.
2) Plan-always changes
Any meaningful change to infrastructure is expressed as:
Plan → Review → Apply → Observe
This workflow ensures change safety in both human-driven and AI-assisted environments. It prevents automation from bypassing review, and it enables auditability and repeatability.
3) Compile to run-time intent
Blueprints, Bundles, and ReleaseSpecs are not executed directly. Higher-level design-time and packaging-time objects are compiled into lower-level executable intent.
This is a core pattern in Xyn:
Humans author intent. The control plane compiles. The backend applies.
Core objects and terminology
SolutionBlueprintSpec (formerly BlueprintSpec)
A SolutionBlueprintSpec is a reusable, parameterized template that defines a full solution pattern. It captures design-time intent and is intended to be instantiated repeatedly across environments.
SolutionBlueprintSpecs describe:
- a solution’s conceptual components
- required parameters and defaults
- policy boundaries (optional)
- required capabilities
- how to select and compose modules
- what bundle(s) should be produced
- templates that produce ReleaseSpecs deterministically
Examples:
- “Monitoring stack”
- “Website + Postgres”
- “Runner stack”
- “EMS management platform (Mikrotik + PON device bundle)”
- “Network service controller”
Key shift: Solution blueprints describe outcomes and constraints, not implementation details. They are capability-driven.
ModuleSpec (Module)
A Module is the smallest independently versioned and releasable unit in Xyn.
A ModuleSpec describes one module and establishes the boundaries that enable reuse. Xyn treats modules as first-class concepts because they create stable decomposition surfaces for both humans and AI coding agents.
Modules are intended to be reusable across solutions. A solution blueprint should mostly be composition glue.
A ModuleSpec includes:
- identity + namespace (FQN)
- type (
adapter,service,ui,workflow,schema,infra,lib) - capabilities provided
- interface contracts (OpenAPI/AsyncAPI/schema refs)
- dependencies (other modules or capabilities)
- owned data surfaces (tables/schemas)
- quality gates (tests/security)
Examples:
xyence.adapter.mikrotik-ztpxyence.adapter.omci-volthaxyence.ui.ems-consolexyn.core.secretsxyence.infra.tenant-isolation-aws-dedicated
Capability Contract
A Capability is a named intent contract the platform can require, and a module can provide.
Capabilities exist so blueprints do not hard-bind to specific implementations.
Examples:
DeviceBootstrap(e.g., Mikrotik DHCP option 43 → ZTP)FirmwareManagement(RouterOS firmware orchestration)AccessDeviceManagement(e.g., PONCAN control plane API)OMCIOrchestration(e.g., VOLTHA-backed flows)TenantIsolation(AWS dedicated VPC + dedicated cluster)
Capabilities are versioned independently and can include a profile, such as:
mikrotik-routerosponcanvoltha
BundleSpec (Bundle)
A BundleSpec is a packaging-time object: a description of a deployable unit produced by composing specific versions of modules.
BundleSpecs answer:
- which modules are included?
- what versions?
- what configuration surfaces exist?
- where is it deployable?
- what compatibility rules exist (e.g., required Xyn version)?
Examples:
xyence.bundle.antronix-emsxyence.bundle.website-stack
Important clarification:
Bundle (platform) is a deployable package.
A domain “bundle” (e.g., Mikrotik + PON device tracked as one product entity) is separate and should be modeled explicitly in the solution’s domain schema.
BlueprintInstance
A BlueprintInstance represents one concrete realization of a SolutionBlueprintSpec. It binds:
- blueprint revision
- parameter values
- environment bindings
BlueprintInstances are the bridge between reusability and specificity:
- SolutionBlueprintSpec: reusable solution intent
- BlueprintInstance: solution deployed into a particular environment
ReleaseSpec
A ReleaseSpec is the canonical expression of deployment-time intent. It describes a single deployable release: service(s), configuration, ports, storage, and versions that should exist.
ReleaseSpecs answer:
- what components should exist?
- what images/build artifacts?
- what exposure rules?
- what volumes?
- which backend is targeted? (Docker Compose today, Kubernetes later)
In Xyn, ReleaseSpec is the stable unit of long-running lifecycle management.
RuntimeSpec
A RuntimeSpec is a compiled representation of the release optimized for orchestration.
In Xyn:
- ReleaseSpec is optimized for authoring
- RuntimeSpec is optimized for execution
RuntimeSpecs are deterministic and backend-aligned. They are suitable for being rendered into:
compose.yaml- Kubernetes manifests (future)
ReleasePlan
A ReleasePlan is a deterministic change description produced before any mutation occurs. It exists to enforce plan-always workflows and to enable review.
ReleasePlans include:
- actions (create/update/delete/noop)
- artifacts (compiled specs, backend render outputs, diffs)
- references to release revision metadata
ReleasePlans are also reused for module and bundle delivery, not only runtime releases. In other words:
- ReleasePlan → Module v0.1.0 (deliverable)
- ReleasePlan → Bundle v0.1.0 (deliverable)
- ReleasePlan → Release runtime change (deployable)
Operation
An Operation is a durable record of execution. It captures what happened when a plan was applied (or when reconciliation acted on drift).
Operations track:
- status (queued/running/succeeded/failed)
- timestamps
- logs
- output artifacts
- references to the associated plan + revision
ReleaseStatus
A ReleaseStatus describes the current observed state for a release.
It typically includes:
- desired revision
- observed revision
- per-service state and health
- top-level summary: running / stopped / degraded
ReleaseStatus is the foundation for reconciliation loops.
xyn-seed: the control plane
Xyn’s control plane responsibilities are implemented in xyn-seed.
xyn-seed:
- validates inputs against xyn-contracts
- resolves required capabilities → module selections (via Module Registry)
- assembles BundleSpecs
- compiles ReleaseSpec → RuntimeSpec
- generates ReleasePlans
- applies plans through backends
- performs drift reconciliation
- maintains Operations and Status
Diagram 1 — Full object lifecycle (solution → modules → bundle → runtime)
flowchart TD
A["SolutionBlueprintSpec<br/>(Design-time solution intent)"] --> B["BlueprintInstance<br/>(Parameters + environment)"]
B --> C["Capability Requirements<br/>(profiles + constraints)"]
C --> D["Module Resolution<br/>(Module Registry search/scoring)"]
D --> E["ModuleSpecs<br/>(Reusable components)"]
E --> F["BundleSpec<br/>(Deployable package)"]
F --> G["ReleaseSpec<br/>(Deploy-time intent)"]
G --> H["RuntimeSpec<br/>(Compiled run-time intent)"]
H --> I["Backend Render<br/>compose.yaml / k8s manifests"]
I --> J["Apply<br/>Compose / K8s"]
J --> K["ReleaseStatus<br/>Observed state"]
G --> L["ReleasePlan<br/>Actions + artifacts"]
L --> M["Operation<br/>Execution record"]
M --> K
subgraph xyn_contracts["xyn-contracts"]
A
E
F
G
H
L
M
K
end
subgraph xyn_seed["xyn-seed"]
D
F
H
L
M
K
end
Diagram 2 — Control plane responsibilities (API-first architecture)
This diagram separates the authoring UI from the deployment authority, reducing risk while still enabling fast iteration and AI-assisted workflows.
flowchart LR
UI["xyence-web<br/>Django Admin + AI Studio"]
BA["Blueprint Studio<br/>(Solution/Module/Bundle authoring)"]
CP["xyn-seed<br/>Control Plane API"]
CT["xyn-contracts<br/>Schemas + OpenAPI"]
MR["Module Registry"]
CC["Capability Catalog"]
AS["Bundle Assembler"]
RT["Runtime Compiler"]
PL["Planner"]
BE["Backend Adapter"]
RC["Reconciler"]
DOCKER["Docker Compose Backend"]
K8S["Kubernetes Backend"]
OBS["Observed Containers/Services"]
UI -->|Plan/Apply requests| CP
UI -->|Author/manage| BA
BA --> UI
CP -->|Validate| CT
CP --> MR
CP --> CC
CP --> AS
CP -->|Compile| RT
CP -->|Plan| PL
CP -->|Apply| BE
CP -->|Status/Reconcile| RC
BE -->|compose.yaml| DOCKER
BE -.->|future| K8S
DOCKER --> OBS
OBS -->|Inspect| CP
subgraph solution_mgmt["Solution + Module + Bundle Management"]
UI
BA
MR
CC
AS
end
Diagram 3 — Release management: plan/apply/status in practice
sequenceDiagram
autonumber
participant User
participant Studio as AI Studio (xyence-web)
participant Seed as xyn-seed API
participant Registry as Module Registry
participant Assembler as Bundle Assembler
participant Backend as Compose Backend
participant Ops as Operation Store
participant Status as Status/Reconciler
User->>Studio: Submit SolutionBlueprintSpec + params
Studio->>Seed: POST /solutions/plan (BlueprintInstance)
Seed->>Registry: resolve capabilities to modules
Registry-->>Seed: selected module versions
Seed->>Assembler: assemble BundleSpec
Assembler-->>Seed: BundleSpec
Seed->>Seed: validate + compile + diff
Seed-->>Studio: ReleasePlan (actions + artifacts)
Studio-->>User: Show plan diff
User->>Studio: Apply plan
Studio->>Seed: POST /plans/{id}/apply
Seed->>Ops: create Operation (running)
Seed->>Backend: docker compose up -d
Backend-->>Seed: results
Seed->>Ops: mark Operation succeeded
loop periodic
Status->>Backend: inspect compose project
Backend-->>Status: container states + health
Status-->>Seed: update ReleaseStatus
end
Studio->>Seed: GET /releases/{id}/status
Seed-->>Studio: ReleaseStatus
Studio-->>User: running/degraded/stopped
Why this vocabulary matters (especially with AI involved)
A control plane must be strict about object boundaries and change workflows. In Xyn, terminology isn’t just documentation — it is part of the safety architecture.
A model or automation system can generate:
- a ModuleSpec
- a SolutionBlueprintSpec
- a BlueprintInstance
- a BundleSpec
- a ReleaseSpec
But:
- xyn-seed validates against contracts
- a plan is generated and reviewed
- only then is apply allowed
- status + reconciliation keep reality aligned with intent
This structure allows AI to accelerate development without turning infrastructure into an opaque prompt-driven system.
Glossary (quick reference)
- SolutionBlueprintSpec — reusable solution intent (design-time)
- ModuleSpec — reusable module contract (component-level)
- Capability Contract — named intent requirement/provision contract
- BundleSpec — deployable composition of module versions
- BlueprintInstance — parameterized solution instance (environment-scoped)
- ReleaseSpec — concrete deployable intent (deploy-time)
- RuntimeSpec — compiled runtime representation (run-time)
- ReleasePlan — planned change set + artifacts (pre-mutation safety)
- Operation — execution record (apply/reconcile)
- ReleaseStatus — observed state + health
- xyn-seed — control plane (resolve/assemble/compile/plan/apply/status/reconcile)
- xyence-web — authoring UI + AI Studio operator surface
- xyn-contracts — schemas + OpenAPI (shared truth across components)
What comes next
This terminology provides the foundation for deeper topics that follow naturally:
- designing capability contracts and profiles
- deterministic composition (module resolution + bundle assembly)
- module compatibility matrices
- drift correction and reconciliation strategies
- blueprint parameter schema design
- safe tool execution planes and controlled primitives