Contract And Release Identity ​
The durable coordinator uses two identities:
pipeline-contract.jsondescribes the semantic pipeline contract produced by compilation.pipeline-release.jsonpins the deployable artifacts that satisfy that contract.
The release is the coordinator admin concept. New executions are pinned to the active pipelineId + contractVersion + releaseVersion, and retries, await resumes, and result reads keep that pinned identity.
Generated Contract ​
Generated builds emit META-INF/pipeline/pipeline-contract.json.
The contract records pipeline id, contract version/hash, runtime metadata, ordered step descriptors, await transport metadata, and declared worker capabilities. Workers validate command envelope identity before decoding payloads or executing business code.
Release Registry And Pinning ​
The self-host release path has three runtime pieces:
PipelineReleaseRegistrystores release records and activation history for each tenant and pipeline.PipelineReleaseRegistrarvalidatespipeline-release.jsonand verifies artifact identity.PipelineReleaseArtifactStorestores executable artifacts in a coordinator-owned content-addressed store where applicable.
Hosted-style execution submission requires pipelineId. The coordinator resolves the active release, verifies the stored artifact, verifies worker availability, and stores pipelineId + contractVersion + releaseVersion on the ExecutionRecord.
Existing executions, retries, await resumes, and result reads stay pinned to the release identity stored on the execution record even if an administrator activates a newer release later.
Current Limits ​
Workers must already host matching code. The coordinator validates, activates, pins, and dispatches releases; it does not dynamically load registered artifacts into a worker runtime.
Local artifact storage is still local to the coordinator host. Multi-coordinator self-host deployments should use the S3-compatible artifact store only for coordinator-managed blob artifacts. Container images should stay in OCI registries and be referenced by digest from the release descriptor.