Skip to content

Define an ephemeral control plane with persistent state architecture for Repo Radius #13292

Open

Description

@brooke-hamilton

Overview of feature request

Repo Radius runs Radius commands in GitHub Actions to manage applications on a separate target cluster. Radius is a stateful control plane, but each workflow run recreates it, restores a state snapshot from GHCR, performs an operation, saves the updated snapshot, and tears the control plane down. This adds repeated startup and archive-transfer overhead, and operations sharing state must be serialized rather than run in parallel.

Define an optional stateless control plane architecture in which the Radius state is persistent, but control plane instances and the CLI are ephemeral. The goal is faster operations and safe parallel execution of independent operations, not merely a different snapshot-storage backend. A potential side-effect of this architecture is to run all of Radius on a local machine using a simplified control plane setup with local state storage.

This issue covers the architectural vision and implementation planning, not implementation itself.

Acceptance criteria

  • Document the control-plane and state lifecycle, hosting and operational ownership, client access and authentication, and migration from existing GHCR snapshots.
  • Define which operations can safely run in parallel and how conflicting operations are coordinated without losing state.
  • Identify the required workflow changes and scoped implementation issues, including how to measure latency improvement against the current lifecycle.

Additional context

Parent: #12996 (modern, composable deployment engine).

Related: #12997 (supported workflow contract), #11605 (archive-storage scope), #12526 (command and state-save outcomes), and #13003 (automation interfaces). This proposal changes the execution architecture; it does not duplicate those interface or storage deliverables.

The existing lifecycle was introduced in #12214, with durable OCI archival added in #12364. See the live state persistence and state archive documentation for the distinction between live state and snapshots.

Activity

  1. radius-triage commented on Oct 14, 2026

    @radius-triage

    👋 @brooke-hamilton Thanks for filing this feature request.

    A project maintainer will review this feature request and get back to you soon.

    We also welcome community contributions! If you would like to submit a pull request, please visit our contribution guidelines and assign this to yourself by commenting "/assign" on this issue.

    For more information on our triage process please visit our triage overview

  2. changed the title [-]Define a persistent-control-plane architecture for Repo Radius[/-] [+]Define an ephemeral control plane with persistent state architecture for Repo Radius[/+] on Oct 14, 2026
  3. self-assigned this
    on Oct 22, 2026
  4. willtsai commented on Oct 23, 2026

    @willtsai
    Contributor

    Functional spec is in progress: #13414

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

featureThis issue describes a feature request in Radiusgithub_actionsPull requests that update GitHub Actions codeneeds-design

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions