Runtime Lifecycle & Support Policy
Lifecycle phases, support timelines, and deprecation policy for Celerity runtimes
Celerity maintains container-based runtimes for running handlers in containerised and local development environments. Language runtimes are tied to upstream language versions and follow a formal lifecycle with defined support windows. OS-only runtimes, which run pre-compiled handler binaries against the Celerity core runtime, are tied to their base operating system image and to the IPC protocol version instead, see OS-only Runtimes.
For cloud provider serverless runtimes (AWS Lambda, Google Cloud Functions, Azure Functions), the lifecycle is managed by the respective cloud provider. See Cloud Provider Runtimes for details.
Lifecycle Phases
Every Celerity runtime moves through the following phases:
| Phase | Description | What You Get | Duration |
|---|---|---|---|
| Active | Recommended for production use | Bug fixes, security patches, runtime updates | Until upstream leaves primary support AND a newer version is available in Celerity |
| Security-Only | Still supported, nearing end of life | Security patches only | Until upstream approaches or reaches EOL |
| Deprecated | Scheduled for removal | Critical security patches (best-effort), CLI warnings | 6 months minimum |
| End of Life | No longer available | No patches, no support, CLI errors on build | N/A |
Active
A runtime in the Active phase is the recommended version for production use. It receives bug fixes, security patches, and runtime updates as they become available upstream.
A runtime remains Active as long as it is the latest supported version of its language in Celerity, even if the upstream version has moved to a maintenance or extended support phase. It transitions to Security-Only when Celerity adds support for a newer version of the same language.
Security-Only
A runtime in the Security-Only phase continues to receive security patches but no new features or non-critical bug fixes. Applications running on a Security-Only runtime will continue to work, but you should plan your migration to the Active runtime for that language.
A runtime enters Security-Only when Celerity adopts a newer version of the same language. It remains in this phase until the upstream version approaches or reaches its end of life for security fixes.
Deprecated
A runtime in the Deprecated phase is scheduled for removal. It receives critical security patches on a best-effort basis only.
CLI warnings during deprecation
When a runtime enters the Deprecated phase, the Celerity CLI will emit warnings during build and deploy operations. Warnings include the End of Life date and the recommended migration target. You should migrate your handlers to a supported runtime version before the End of Life date.
A runtime enters the Deprecated phase when the upstream version is in its final 12 months of security support or has already reached end of life. The Deprecated phase lasts a minimum of 6 months to give you time to migrate.
End of Life
A runtime that has reached End of Life is no longer available. Runtime images are no longer published or updated. Existing deployments will continue to run but will receive no further patches.
The Celerity CLI will emit errors (not just warnings) when attempting to build or deploy with an End of Life runtime.
Current Runtime Support
| Runtime | Runtime ID | OS | Celerity Phase | Upstream Status | Security-Only Begins | Celerity EOL |
|---|---|---|---|---|---|---|
| Node.js 24 | nodejs24.x | Debian 13 (trixie) | Active | Active LTS (until Apr 2027), then Maintenance LTS until Apr 2028 | When Node.js 25+ runtime is added to Celerity | Oct 2028 |
| Python 3.13 | python3.13.x | Debian 13 (trixie) | Active | Full Support (until ~Oct 2026), Security fixes (until Oct 2029) | When Python 3.14+ runtime is added to Celerity | Apr 2030 |
| OS-only Debian 13 | os-only.debian13 | Debian 13 (trixie) | Active | Debian security support (until Aug 2028), then Debian LTS until Jun 2030 | When an os-only.debian14 runtime is added to Celerity | Dec 2030 |
How Celerity dates are derived
Celerity's Active phase ends when a newer version of the same language is adopted by Celerity. The Security-Only phase aligns with the upstream language version's end of life for security fixes. Celerity then provides a minimum 6-month Deprecated window before reaching End of Life.
Node.js 24 lifecycle note
Node.js 24 entered Active LTS in October 2025, before the Celerity v0 release. Since it remains the only supported Node.js version in Celerity, it is classified as Active within the Celerity lifecycle. It will transition to Security-Only when Celerity adds support for Node.js 25 or a later LTS version.
OS-only runtime dates
The os-only.debian13 runtime contains no language interpreter, so the "Upstream Status" column refers to the base operating system image rather than a language version. Debian 13 (trixie) was released in August 2025 and receives full Debian security support until August 2028, followed by Debian LTS until June 2030. See OS-only Runtimes for the full policy, including the separate IPC protocol compatibility guarantees.
OS-only Runtimes
An OS-only runtime ships the Celerity core runtime on a bare operating system image with no language interpreter or language-specific SDK bindings. Your handler is a pre-compiled binary that the core runtime starts as a separate process and communicates with over the Celerity IPC protocol.
This is how Celerity supports compiled languages. Rather than publishing a runtime per compiled language, the language-specific part lives in the Celerity SDK for that language. The Go SDK, for example, produces a handler executable that speaks the IPC protocol, and that executable runs on any OS-only runtime. One OS-only runtime therefore serves every compiled language Celerity has an SDK for.
Because there is no language version involved, two independent support clocks apply to an OS-only runtime:
| Clock | What it governs | What happens when it runs out |
|---|---|---|
| Base OS image | Security patching of the published runtime image | The runtime moves through the standard lifecycle phases and is eventually no longer published so you rebuild against a newer OS-only runtime and redeploy |
| IPC protocol version | The wire contract between the core runtime and your handler binary | A handler binary built against an unsupported protocol major version can no longer communicate with the core runtime and must be rebuilt against a current SDK |
Runtime Identifiers
Each supported operating system variation is published as its own runtime identifier in the form os-only.{osVersion}, for example, os-only.debian13. Each variation is listed as a separate runtime in Current Runtime Support, with its own lifecycle phase and its own dates. Variations are never rolled forward in place: adopting a new base OS means adding a new runtime identifier, not changing what an existing one resolves to.
An OS-only runtime enters the Active phase when it is added, and the previous OS-only variation transitions to Security-Only at that point, mirroring the policy for language runtimes.
IPC Protocol Compatibility
The IPC protocol is versioned as MAJOR.MINOR and is negotiated at the handshake, when your handler process connects to the core runtime. Both ends declare the version they speak, and a handler built against a major version the runtime does not serve is refused there rather than failing later on a frame it cannot read. See Version Negotiation. The Celerity SDK you compile your handler against determines the protocol version that binary speaks.
| Protocol Version | Introduced In | Status | Supported Until |
|---|---|---|---|
| 1.0 | Celerity v0 (November 2026) | Active | — |
The following guarantees apply:
- Minor versions are additive only. A handler binary built against protocol
1.xruns unmodified on any runtime image that supports protocol major version1, including later minor versions. New optional capabilities may be added in a minor version; existing messages and their semantics are never changed or removed. - Major versions get a minimum 12-month dual-support window. When a new major protocol version is released, runtime images continue to accept the previous major version for at least 12 months from the release date of the new major version. During that window the Celerity CLI emits warnings at build time for handlers still using the older protocol, and a migration guide is published.
- The protocol clock is independent of the OS clock. A protocol major version is not tied to any particular OS-only runtime identifier, and its support window is not shortened by an OS-only runtime reaching End of Life. In practice, whichever of the two clocks expires first is the one that forces a rebuild.
Protocol version and SDK version
You do not set the protocol version directly. It is determined by the version of the Celerity SDK your handler binary is compiled against. Upgrading the SDK and rebuilding is the migration path for a major protocol version change.
Handler Binary Compatibility
The "OS" column for an OS-only runtime describes the image that Celerity publishes for local development and containerised targets. It does not describe every environment your handler binary may end up running in, the deploy engine maps OS-only runtime identifiers onto each target platform's own custom-runtime mechanism, which may be based on a different operating system.
| Environment | What os-only.debian13 resolves to | Base OS |
|---|---|---|
| Local development | Celerity OS-only runtime container image | Debian 13 (trixie) |
| AWS Lambda | Lambda custom runtime (provided.al2023) | Amazon Linux 2023 |
| Containerised targets (ECS/EKS and equivalents) | Celerity OS-only runtime container image | Debian 13 (trixie) |
| Azure Functions | Azure Functions custom handler | Platform-defined |
| Google Cloud Functions | Not supported | — |
Build for the oldest target
Because the base OS differs across targets, a dynamically linked handler binary built on Debian 13 may fail to start on a target with an older glibc. Statically link your handler binary, or build it against the oldest glibc across the targets you deploy to. The lifecycle dates on this page cover the runtime images Celerity publishes, they say nothing about what your binary links against.
Adoption Policy for New Runtimes
New versions of supported languages
Celerity aims to add support for new LTS or stable versions of already-supported languages (Node.js, Python) within 3 months of the upstream version entering its Active LTS or Full Support phase.
When a new version is added:
- The new runtime enters the Active phase.
- The previous version transitions to Security-Only.
- This page and the handler runtime table are updated with revised lifecycle dates.
- An announcement is made in release notes.
New languages
v1 (target: November 2027) adds C#. It enters the Active phase upon its initial Celerity release and follows the same lifecycle policy defined on this page.
Languages beyond it are considered case by case on demonstrated demand rather than committed in advance. A language runtime is a standing commitment rather than a one-off piece of work: everything on this page applies to it from the day it ships, including a published runtime image, security patching, adoption of new upstream versions within 3 months, and the Security-Only, Deprecated and End of Life windows.
This applies only to languages that need an interpreter or virtual machine in the runtime image. A compiled language such as Go is supported through its Celerity SDK, which produces a handler executable that runs on an existing OS-only runtime; adding a compiled-language SDK does not add a runtime to this page, and the OS-only lifecycle and IPC protocol guarantees are what apply to those handlers.
New OS-only runtime variations
Celerity aims to add an OS-only runtime for a new base operating system version within 3 months of that version's stable release. Each variation is added as a new os-only.{osVersion} identifier rather than by changing an existing one, so handler binaries pinned to an existing identifier are unaffected.
When a new OS-only variation is added:
- The new runtime enters the Active phase.
- The previous OS-only variation transitions to Security-Only.
- The IPC protocol version supported by the new image is unchanged unless separately announced; adopting a new base OS is not, by itself, a protocol change.
See the Celerity versions page for the full roadmap.
Deprecation Protocol
When a runtime approaches end of life, the following steps are carried out:
- Announcement (6+ months before EOL): The runtime is moved to the Deprecated phase. An announcement is published in release notes and this page is updated with the EOL date.
- CLI warnings: The Celerity CLI displays deprecation warnings when building or deploying applications that use the Deprecated runtime. Warnings include the EOL date and the recommended migration target.
- Migration guide: A migration guide is published detailing the steps to move handlers to the replacement runtime version.
- End of Life: After the EOL date, the runtime images are no longer published or updated. The Celerity CLI emits errors when attempting to build with an EOL runtime.
Deprecation Triggers
| Trigger | Transition |
|---|---|
| Upstream language version leaves primary support AND a newer version is available in Celerity | Active → Security-Only |
| Upstream language version is in its final 12 months of security support, or has reached EOL | Security-Only → Deprecated |
| 6 months have elapsed since entering the Deprecated phase, or upstream has fully ceased all support | Deprecated → End of Life |
For OS-only runtimes, the base operating system image replaces the upstream language version as the trigger, and the IPC protocol carries its own separate trigger:
| Trigger | Transition |
|---|---|
A newer OS-only variation is added to Celerity (e.g. os-only.debian14) | Active → Security-Only |
| The base OS image enters the final 12 months of its security or LTS support, or has reached EOL | Security-Only → Deprecated |
| 6 months have elapsed since entering the Deprecated phase, or the base OS image has fully ceased all support | Deprecated → End of Life |
| A new major IPC protocol version is released | Previous major protocol → Deprecated, supported for a minimum of 12 months |
Cloud Provider Runtimes
When deploying handlers to cloud provider serverless platforms, the runtime lifecycle is governed by the respective cloud provider. Celerity does not control these runtimes and cannot extend their support beyond what the provider offers.
You always specify a Celerity runtime identifier in the blueprint, the Celerity deploy engine maps it to the concrete provider runtime at deploy time. Celerity tracks cloud provider runtime deprecations and will update the mapping, documentation and CLI warnings when a provider deprecates a runtime version.
AWS Lambda
The Celerity deploy engine maps each Celerity runtime identifier to a supported AWS Lambda runtime. When AWS deprecates a Lambda runtime that a mapping targets, Celerity will update the mapping to the next supported version and emit CLI warnings for applications affected by the change.
Google Cloud Functions
The Celerity deploy engine maps each Celerity runtime identifier to a supported Google Cloud Functions runtime. When Google deprecates a Cloud Functions runtime that a mapping targets, Celerity will update the mapping and emit CLI warnings for affected applications.
Warning
Google Cloud Functions does not offer a custom-runtime mechanism, so OS-only runtimes, where a pre-compiled handler binary is uploaded and executed directly, can not be deployed there. Languages that compile ahead of time are supported (Go to a native binary, Java and .NET to bytecode on a virtual machine), but the platform builds your handler from source rather than running a binary you provide.
Azure Functions
The Celerity deploy engine maps each Celerity runtime identifier to a supported Azure Functions runtime. When Azure deprecates a Functions runtime that a mapping targets, Celerity will update the mapping and emit CLI warnings for affected applications.
Note
Azure Functions do not support OS-only runtimes in the same way as the Celerity runtime and AWS Lambda. Azure Functions do support custom handlers that are compiled light-weight HTTP servers that run in the Azure Functions runtime environment. Celerity will map OS-only runtime identifiers (os-only.*) to custom handlers in Azure Functions.
Future Runtime Roadmap
| Runtime | Expected Availability | Expected Upstream Version | Status |
|---|---|---|---|
| Node.js 26 | v1 (November 2027) | Node.js 26 LTS | 🚀 Planned for v1 |
| Python 3.14 | v1 (November 2027) | Python 3.14 | 🚀 Planned for v1 |
| C# | v1 (November 2027) | TBD | 🚀 Planned for v1 |
| OS-only Debian 14 | Within 3 months of the Debian 14 release | Debian 14 (forky), expected mid-2027 | 🚀 Planned |
Lifecycle dates for planned runtimes will be published when the runtimes are released. Each will follow the same lifecycle policy defined on this page.
Debian 14 timing
Debian 14 (forky) is expected in the middle of 2027. The os-only.debian14 runtime will be added within 3 months of that release under the adoption policy for new OS-only variations, which puts it around the v1 release rather than tied to it. When it is added, os-only.debian13 transitions to Security-Only; existing handlers pinned to os-only.debian13 are unaffected.
Compiled languages are not listed here
Compiled languages such as Go do not appear in this roadmap because they do not get a language-specific runtime. Language support for a compiled language lives entirely in its Celerity SDK, which produces a handler executable that runs on an OS-only runtime. See OS-only Runtimes.
Last updated on