Skip to content

feat(orchestrator): rewrite main.go to use pipeline.Construct#405

Draft
JamyDev wants to merge 1 commit into
jamy/orchestrator-pipelinefrom
jamy/orchestrator-rewrite
Draft

feat(orchestrator): rewrite main.go to use pipeline.Construct#405
JamyDev wants to merge 1 commit into
jamy/orchestrator-pipelinefrom
jamy/orchestrator-rewrite

Conversation

@JamyDev

@JamyDev JamyDev commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Replace ~600 lines of manual wiring with a single pipeline.Construct
call. The orchestrator's run() now:

  1. Builds per-queue profiles (Profile/Profiles in profiles.go)
  2. Populates orchestrator.Deps with profile-derived Factory adapters
  3. Calls pipeline.Construct(deps, orchestrator.Stages, ...) to get a
    single lifecycle.Component
  4. Drives Start/Stop on that component

Removed:

  • newTopicRegistry (topology now declared in orchestrator.Stages)
  • queueExtensions/queueRegistry (replaced by Profile/Profiles)
  • Four *Factory adapter structs (replaced by func-type adapters)
  • registerPrimaryControllers (stages declare their own New funcs)
  • registerDLQControllers (stages declare their own DLQ funcs)

The host retains: infrastructure bootstrap, per-queue profile
construction, change provider wiring, gRPC server lifecycle, and
signal handling — all host-specific concerns per the RFC.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

Test Plan

Issues

Stack

  1. feat(orchestrator): rewrite main.go to use pipeline.Construct #402
  2. feat(platform): add pipeline.Construct engine #403
  3. feat(orchestrator): add pipeline self-declaration #404
  4. @ feat(orchestrator): rewrite main.go to use pipeline.Construct #405

Replace ~600 lines of manual wiring with a single pipeline.Construct
call. The orchestrator's run() now:

1. Builds per-queue profiles (Profile/Profiles in profiles.go)
2. Populates orchestrator.Deps with profile-derived Factory adapters
3. Calls pipeline.Construct(deps, orchestrator.Stages, ...) to get a
   single lifecycle.Component
4. Drives Start/Stop on that component

Removed:
- newTopicRegistry (topology now declared in orchestrator.Stages)
- queueExtensions/queueRegistry (replaced by Profile/Profiles)
- Four *Factory adapter structs (replaced by func-type adapters)
- registerPrimaryControllers (stages declare their own New funcs)
- registerDLQControllers (stages declare their own DLQ funcs)

The host retains: infrastructure bootstrap, per-queue profile
construction, change provider wiring, gRPC server lifecycle, and
signal handling — all host-specific concerns per the RFC.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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