Kaiten

Deployments

Deployments

Components, releases, deployment zones, and the append-only deployment journal — the runtime pillar of the control plane, and why it sits next to the contract.

Why release tracking lives here

The commercial contract already knows every instance, the customer it belongs to, and what that customer is entitled to. Release tracking adds the other half of the same fact: which versions of your product each instance runs. Kaiten keeps both halves in one model, so a question such as "Sakura Tokyo's License grants delivery tracking — does its instance run the release that ships it?" is answered by reading one set of records, with the same slugs on both sides.

Most stacks hold this knowledge in several places: the delivery pipeline knows what was shipped, an inventory knows which customer runs where, and the commercial system knows what was sold. Putting what runs where beside who bought what makes the separate inventory redundant. It does not move the pipeline: your CI/CD, registries, and runners keep shipping the artifacts; Kaiten records the landing and exposes it to the contract, to targeting rules, and to the audit trail.

The four entities

Component — one building block of your product at one version: name plus version, unique together within your organization. Successive versions chain through previousComponentId, so Delivery Service 0.9.0 → 1.0.0 is two components linked into one history. A component that no release has bundled yet can be edited in place; once a release bundles it, edits produce the next version instead.

Release — a versioned bundle of components, the shippable unit. Its component list is fixed at creation and there is no update endpoint: Kaiten Sushi Shop's 2026.8.0, the release that introduces real-time delivery tracking, bundles API and Web App at 2026.8.0, Kitchen Display 1.2.0, and Delivery Service 1.0.0, and it will bundle exactly those four for as long as it exists.

Deployment zone — a logical execution environment where instances run, shared by many customers' instances or dedicated to one. Kaiten Sushi Shop runs shared-eu, shared-apac, and sakura-dedicated, all three production zones; a dedicated metadata field says which one serves a single customer. A zone points at the release it currently runs (releaseId), carries typed metadata, and is what an instance optionally attaches to — the instance runs whatever its zone runs.

Deployment — the append-only journal. Every time a zone's current release changes, one entry is appended: the release, the zone, the moment, the actor. Entries are never edited, and are removed only with their zone, so the journal is the history of every zone and of every release. Kaiten Sushi Shop's journal reads as a progressive rollout: 2026.7.0 in all three zones, then, about five weeks later, 2026.8.0 in shared-eu and shared-apac — while sakura-dedicated still runs 2026.7.0.

How it works

  1. Register components as your product's building blocks ship — POST /components, one entry per version, chained to the previous one.
  2. Cut a release that bundles the component versions you are shipping together — POST /releases with their ids. From this point the bundle is a fact.
  3. Model your zones — POST /deployment-zones for each place instances run, with its environment class as type and the metadata your organization declared.
  4. Record each landing by pointing the zone at the release — PUT /deployment-zones/{slug} with the new releaseId. Kaiten appends the journal entry and emits RELEASE_DEPLOYED.
  5. Attach instances to zones at creation or later. What an instance runs is then derived from its zone, and targeting rules can read the zone an instance runs in.

Everything on these pages is scoped to your organization: components, releases, zones, and the journal are yours alone, like every other record in the model.

In this section

API endpoints overview

Scopes follow the module: read:components / write:components, read:releases / write:releases, read:deployment_zones / write:deployment_zones; the instance linkage uses write:instances. See scopes.

Components

MethodEndpointDescription
GET/componentsList components (cursor-paginated)
POST/componentsCreate a component, optionally derived from a previous version
GET/components/{slug}Get a component
PUT/components/{slug}Update in place when unlinked; create the next version when a release bundles it
DELETE/components/{slug}Delete a component not linked to any release

Releases

MethodEndpointDescription
GET/releasesList releases (cursor-paginated)
POST/releasesCreate a release and link its components
GET/releases/{slug}Get a release with its components
DELETE/releases/{slug}Delete a release that was never deployed — refused with 409 once the journal names it, or while another release names it as its predecessor

Deployment zones

MethodEndpointDescription
GET/deployment-zonesList zones (cursor-paginated)
POST/deployment-zonesCreate a zone; a releaseId records its first deployment
GET/deployment-zones/{slug}Get a zone, including its current releaseId
PUT/deployment-zones/{slug}Update a zone; a changed releaseId records a deployment
DELETE/deployment-zones/{slug}Delete a zone

Instance linkage

MethodEndpointDescription
POST/instancesdeploymentZoneId places the new instance in a zone
PUT/instances/{slug}A different deploymentZoneId moves the instance to another zone

Events

Event nameEvent type
COMPONENT_CREATEDcom.kaiten.component.v1.created
COMPONENT_UPDATEDcom.kaiten.component.v1.updated
COMPONENT_DELETEDcom.kaiten.component.v1.deleted
RELEASE_CREATEDcom.kaiten.release.v1.created
RELEASE_DELETEDcom.kaiten.release.v1.deleted
DEPLOYMENT_ZONE_CREATEDcom.kaiten.deployment_zone.v1.created
DEPLOYMENT_ZONE_UPDATEDcom.kaiten.deployment_zone.v1.updated
DEPLOYMENT_ZONE_DELETEDcom.kaiten.deployment_zone.v1.deleted
RELEASE_DEPLOYEDcom.kaiten.deployment_zone.v1.release_deployed
INSTANCE_DEPLOYEDcom.kaiten.instance.v1.deployed
INSTANCE_MIGRATEDcom.kaiten.instance.v1.migrated

The event catalog lists every event with its payload; events and webhooks explains the two delivery paths.

Where to go next

The one-screen version of this pillar is the concept page Releases & Deployments. Exact reference — tables, columns, constraints: the releases and deployments section of the data model.

On this page