Skip to content

design(runtime): define the runtime control-plane architecture #1151

Description

@Brad-Edwards

Context

RAES has a raes_runtime control-plane abstraction, an in-memory default store, an optional local JSON store, and a reference HTTP adapter. The repository does not yet define one coherent architecture for how those surfaces relate to embedded consumers, local tools, long-lived services, targets/backends, or distributed execution.

Issue #1092 and PR #1136 exposed the gap by proposing SQLite durability, operation recovery, single-process ownership, and store compatibility rules inside what appears to be a local storage change. Those choices cannot be evaluated in isolation because expected RAES use ranges from tests and single-user single-scenario environments through RAE, env-packs, ETV, air-gapped deployments, multiprocess execution, and high-load services.

This issue owns the architectural design. It does not presuppose SQLite, another database, a queue, an event log, a service topology, or a single universal deployment model.

Questions the design must answer

  • What is the runtime control-plane: an in-process facade, an embedded component, a deployable service, a shared service, a family of conforming implementations, or some combination?
  • Where is its boundary relative to SDL authoring, processor compile/plan behavior, runtime execution, RuntimeTarget, reference implementations, concrete backends, RAE, env-packs, and ETV?
  • What state is authoritative, derived, reconstructable, operational, auditable, evidentiary, or provenance-bearing?
  • What owns a target, scenario, run, participant, tenant, and operation, and what are the required isolation boundaries?
  • Is an operation a synchronous backend call with bookkeeping, durable work that can outlive its submitter, desired-state reconciliation, or profile-dependent behavior?
  • Which concurrency models must be supported: threads, multiple processes, multiple hosts, multiple controllers, multiple targets, and multiple tenants?
  • What consistency and concurrency-control model applies to snapshots, operations, idempotency claims, audit events, and external backend effects?
  • What are the required behaviors after process loss, memory loss, host loss, storage loss, network partition, cancellation, timeout, and an indeterminate backend effect?
  • Which responsibilities belong to the runtime, the control-plane implementation, the persistence/coordination provider, the backend, and the embedding application?
  • Which operating contexts are supported, and what are their explicit guarantees and nonclaims: tests, development, single-user local execution, embedded RAE/env-pack/ETV use, air-gapped deployments, high-load services, and highly available deployments?
  • What extension contracts and capability semantics are required for persistence, coordination, scheduling, recovery, and observation without baking one deployment topology into RuntimeControlPlane?
  • How are startup, shutdown, configuration, migrations, backup/restore, upgrades, compatibility, deprecation, and operational health owned?
  • Which existing control-plane, store, HTTP adapter, requirement, documentation, and test surfaces should be retained, changed, split, deprecated, or removed?
  • What is the resulting disposition of issue fix(runtime): make local operation state transactional and durable #1092 and PR fix(runtime): make local operation state transactional and durable #1136?

Acceptance criteria

  • The required new ADRs and amendments are merged, indexed, and citable. They record the control-plane role and boundaries, state authority, execution and concurrency model, failure/recovery model, supported operating contexts, extension seams, alternatives, consequences, risks, and explicit nonclaims.
  • Architectural design documents are merged for every architecture selected by the ADRs. They show component boundaries, ownership, data and control flow, lifecycle, persistence/coordination interactions, security boundaries, and failure/recovery behavior in enough detail to guide implementation and review.
  • The design includes an evidence-backed audit of the current repository surfaces and an explicit retain/change/split/deprecate/remove disposition, including issue fix(runtime): make local operation state transactional and durable #1092, PR fix(runtime): make local operation state transactional and durable #1136, RuntimeControlPlane, the store protocols and implementations, and the reference HTTP adapter.
  • All implementation work required by the accepted design is represented by concrete issues in the Runtime Control-Plane milestone. Each issue has a bounded scope, dependencies and ordering, acceptance criteria, verification expectations, and requirement/ADR traceability.
  • The implementation issue set covers all required code, contracts, migrations, compatibility work, tests, documentation, deployment/composition work, and operational tooling; no required work remains hidden in the design issue or deferred only in prose.
  • The design issue itself does not implement a storage engine or select one by incidental code change. It closes only when the ADRs, architectural designs, and complete implementation issue set above are in place.

Related

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    in-progressAn agent is actively working this issue via /implement

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions