Skip to content

docs(control_plane): phase-by-phase migration plan for BackendPlan cutover - #390

Closed
zzylol wants to merge 4 commits into
mainfrom
docs/backend-plan-migration-phases
Closed

zzylol wants to merge 4 commits into
mainfrom
docs/backend-plan-migration-phases

Conversation

@zzylol

@zzylol zzylol commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Summary

Companion to #389 (design doc). This is the execution plan: 8 phases
(design sign-off → agg_intent.rs merge → remaining L1-L3 → fix
capability_for() for D1-D5 → BackendPlan types → RoutingIndex
delete the duplicate legacy analyzer → cutover), each scoped as an
independently reviewable, revertible PR with its own testing/exit
criteria.

Notably, this does not reuse ASAPController/docs/migration-plan.md's
premise or estimates — that document's stated source
(ASAPQuery-backend/asap-planner-rs/) no longer exists, and a fresh
re-measurement of the L1-L3 files on both sides shows several have
flipped which side is bigger since
ASAPController/docs/intent-algebra-reconciliation.md was written
(schema.rs is no longer byte-identical; query_expr.rs and lower.rs
both flipped which repo has more code). Phase 2 explicitly calls this out
and requires a fresh per-file diff rather than trusting either doc's
cached "which side is richer" table.

Three decisions are flagged as blocking Phase 0 (not to be decided
implicitly later): Frequency representation, irate/rate folding, and
whether merging the SQL frontend means control_plane regains SQL as a
first-class surface.

Test plan

  • No code changes — docs only.
  • Phase 0 (design sign-off + the three decision-log items) should
    close before any implementation PR referencing this plan opens.

🤖 Generated with Claude Code

zzylol added 2 commits July 17, 2026 21:38
…tover

Companion to design-backend-plan-wire-format.md (#389). Phases the
ASAPController L1-L3 merge, the capability_for() fix for D1-D5, and the
BackendPlan/RoutingIndex rollout into independently reviewable, revertible
PRs. Explicitly does not reuse ASAPController/docs/migration-plan.md's
stale premise or LOC estimates -- re-measures current source instead,
which shows several L3 files have flipped which side is bigger since
intent-algebra-reconciliation.md was written.
Frequency/irate/SQL/CSE decisions recorded; Phase 2 step 5 (CSE->L4) now
carries an explicit regression-pass requirement instead of "keep as-is
unless there's a reason to move it"; Phase 2 step 7 scopes SQL support to
IR/parsing only, with the data_plane SQL query endpoint flagged as
separate future work rather than silently folded into this plan. Adds the
general "adopt ASAPController on divergence" tie-break rule as decision
log item 7.
zzylol and others added 2 commits July 17, 2026 22:10
Frequency: corrected to "kept, not folded" per #391's finding. Also
flags that analyzer-parity-matrix.md's named acceptance test doesn't
exist in current data_plane -- Phase 3 needs to locate or rebuild it
before starting, not assume it's there.
Phase 1 wasn't done as scoped (#391 closed unmerged; #392 "Phase 1b"
substituted a bigger structural fix -- direct git-dep on ASAPController's
IR crates instead of an in-tree vocabulary copy-merge). Phase 3 is
substantially done already (capability_for() routes Sum/Min/Max/Rate/
Increase to exact-agg on main) but not via this plan's sequencing, and
its own documented blocker (missing analyzer_parity_tests corpus) is
still unresolved. Phases 4-5 haven't started.

Also flags an unplanned parallel thread (#407/#408 Step A/B, merged;
#409 Step C, open) that adopts asap_plan::bind::implement_tree /
asap_sketch::L4Node directly and overlaps with what Phases 4-5 were
meant to deliver -- cross-referenced against the RoutingIndex
reconciliation just landed on design-backend-plan-wire-format.md (#389)
so Phases 4-5 get re-scoped against what that thread actually ships
before anyone executes them as originally written.

No process/plan changes here beyond recording status -- this is the
same kind of staleness correction this doc already applied to
ASAPController/docs/migration-plan.md.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@zzylol

zzylol commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author

Superseded — this phase plan was scoped against #389's old design doc (specific phase numbers, status annotations tied to that narrative), which is itself superseded by #433's clean rewrite. Closing rather than rebasing the phase table onto #433, since most of what it tracked is now either done (L1-L4 adoption via git-deps, capability_for D1-D5 mostly closed, legacy analyzer deleted) or superseded by the SummaryExecutor/RoutingIndex framing in #433 §5. If/when BackendPlan/RoutingIndex implementation work actually starts, it should get a fresh phase plan scoped against #433's current design, not this one patched to match.

@zzylol zzylol closed this Jul 29, 2026
@zzylol
zzylol deleted the docs/backend-plan-migration-phases branch July 29, 2026 22:20
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