Date: 2026-07-26 Status: Accepted
Context
Knative provides distinct workload activation and revision semantics but runs on Kubernetes. Treating it as an unrelated peer rail would duplicate generic workload lifecycle and substrate assumptions.
Decision
Railiance distinguishes base and derived rails.
rail-kubernetes is the default base rail for platform workloads. rail-knative is a derived rail that inherits a versioned rail-kubernetes common contract and overrides only Knative-specific activation, revision, autoscaling, traffic, cold-start, and rollback semantics.
The detailed contract is docs/rail-composition-contract.md.
Consequences
- New platform workloads continue to use
rail-kubernetesunless a specialized rail is justified. - Derived rails declare base-rail compatibility rather than copying lifecycle contracts.
- Fabric and conformance tooling must understand rail dependency and readiness.
- Knative installation stays with the S2 substrate owner.