Skip to content

feat(control-plane): publish compiled physical plans - #452

Merged
zzylol merged 4 commits into
mainfrom
feat/opamp-physical-plan-publication
Sep 2, 2026
Merged

zzylol merged 4 commits into
mainfrom
feat/opamp-physical-plan-publication

Conversation

@zzylol

@zzylol zzylol commented Sep 1, 2026 •

Copy link
Copy Markdown
Contributor

Why

The MVP needs compiled physical plans to reach the intended Collector and become active before the backend treats deployment as successful.

What

Publishes target-specific CollectorPlan messages over the shared OpAMP capability, installs the matching typed BackendPlan, and requires exact plan/version application status.

How

Preflight Collector identity and capability, publish the compiled custom message, install the backend plan, and fail closed on disconnect, timeout, rejection, missing capability, or non-matching acknowledgement.

Before this PR

Physical plans could be compiled but not delivered through the production Collector control channel, and activation was not proven.

After this PR

The control plane reports success only when the targeted Collector acknowledges the exact compiled plan version.

Evidence

Execution example: OpAMP tests cover capability discovery, per-agent publication, exact-version acknowledgement, rejection, timeout, and disconnect. Visual and performance evidence are not applicable.

Verification

  • Unit tests: cargo test -p control_plane — 715 library and 28 binary tests passed.
  • End-to-end tests: compile-and-publish endpoint exercises preflight, backend installation, publication, and acknowledgement.
  • Focused tests: OpAMP and physical compiler suites — passed.
  • Other checks: cargo check -p control_plane and git diff --check — passed.

Architectural decisions

Uses a versioned custom OpAMP message instead of full-YAML configuration so the wire payload is the typed physical-plan contract.

Limitations and follow-up

Stacked on #451. Collector transport counterpart: ProjectASAP/ASAPCollector#563. Lifecycle guarantees are added in #453.

Human review — do not complete with an agent

  • The MVP boundary is correct.
  • New conceptual layers or public interfaces are necessary.
  • The before/after description matches the intended product behavior.
  • Human reviewer:
  • Decision and rationale:

zzylol added a commit that referenced this pull request Sep 2, 2026
# Conflicts:
#	control_plane/src/sketch_algebra/cost_model.rs
@zzylol
zzylol changed the base branch from feat/physical-plan-compiler to main September 2, 2026 17:53
@zzylol
zzylol merged commit 01ca258 into main Sep 2, 2026
@zzylol
zzylol deleted the feat/opamp-physical-plan-publication branch September 2, 2026 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant