King Klown Logo
The kOAinitiative

Distribution & versioning

A Kristal is meant to travel: between devices, communities, institutions, environments, and time.

This page explains how Kristals are released, updated, activated, and distributed while preserving the core promise:

portable epistemic artifacts, verifiable integrity, offline-capable use, and reader-policy-aware activation.


The rule that makes updates safe

Releases never overwrite

A Kristal release is immutable. If you need a change, you publish a new release.

This gives users and institutions a stable foundation:

you can always know exactly what was used, when, where, under which policy, and from which source artifact.


What gets distributed

Kristal is typically distributed through several complementary artifact types.

1) Exchange

An Exchange is the compiled source artifact.

It may be:

An Exchange is what you cite, verify, federate, validate, or use as the source for derived runtime artifacts.

A Reference Exchange does not mean universal truth. It means the artifact is recognized under explicit authority, validation, certainty, and scope constraints.

2) Runtime Pack

A Runtime Pack is the deployable offline/query package.

It is optimized for:

A Runtime Pack must preserve the labels needed to understand what it contains:

3) Supporting artifacts

A complete release may also include:

Exchange = verifiable compiled source artifact Runtime Pack = deployable offline/query package Reader Policy = visibility and selection rules


Distribution happens through channels

A channel is a named distribution target: a tenant, community, region, device cohort, institution, environment, or field deployment.

Examples:

Channels are not just folders. They are policy scopes.

A channel may define:

A channel can accept a Working Artifact for review while exposing only Reference Artifacts to a public reader policy.


Versioning model

Kristal uses two ideas at once.

A) Strong identity

Every identity-bearing artifact has an identity tied to its content and declared technical canonicalization / hashing surface.

This supports machine-safe verification:

B) Release versions

On top of strong identity, a publisher may use semantic or calendar release labels for human readability.

Recommended practical rules:

Example release labels:

The version label helps humans. The artifact ID protects machines.


Activation is separate from existence

A Runtime Pack is not active just because it exists on disk.

Activation is a controlled switch that should be:

Required verification may include:

This prevents partial installs, quiet corruption, and accidental exposure of material outside the active policy.


Downgrade prevention and rollback

Two things must be true simultaneously.

1) You can roll back fast

If a new release behaves badly, you need a deterministic rollback mechanism:

Rollback should preserve auditability:

2) Rollback must not become a downgrade vulnerability

Rollback must still satisfy the active channel policy.

Practical controls:

A rollback target may be old and still valid, or old and blocked. The channel policy decides.


Release strategies

When devices update asynchronously, especially offline, “ship it and pray” does not work.

Two rollout patterns fit Kristal well.

Blue / Green

Keep two slots:

Green is downloaded, verified, indexed, warmed up, and checked before the channel pointer changes.

If activation succeeds, the channel flips to Green.

Blue remains available for rollback during a defined window.

Canary

Roll out to a small cohort first.

Examples:

Expand only if verification, query behavior, reader-policy enforcement, and runtime checks pass.

The invariant is:

every activation must be traceable to an explicit release record.


Domain shards and federation

Kristal v5 supports versioning without forcing every domain to move together.

If you use domain sharding:

This supports real-world distribution:

Federation should preserve:

Federation must not silently merge disagreement into a single flattened result.


Offline distribution

Kristal distribution should support degraded and offline environments:

The principle stays the same:

verification must be possible before activation.

Offline verification may rely on:

If the environment cannot verify what the active policy requires, it should not activate the release.


Reader policy and visible versions

Different readers may see different material from the same release.

Examples:

A release may therefore contain more than a given reader sees.

The Runtime Pack and query layer must preserve the labels needed to enforce the selected reader policy.


Practical release record

A useful release record should identify:

This is what makes distribution auditable rather than merely copied.