Skip to content

Modularize orchestrator wiring: extract queue profiles, topic registry builder, and controller registration#290

Draft
JamyDev wants to merge 1 commit into
mainfrom
jamy/rfc-modular-queue-wiring
Draft

Modularize orchestrator wiring: extract queue profiles, topic registry builder, and controller registration#290
JamyDev wants to merge 1 commit into
mainfrom
jamy/rfc-modular-queue-wiring

Conversation

@JamyDev

@JamyDev JamyDev commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds an RFC at doc/rfc/submitqueue/modular-queue-wiring.md proposing 5 extractions to make the orchestrator's queue setup more modular:

  1. Promote queueExtensions/queueRegistry into submitqueue/core/queueprofile
  2. Extract declarative topic-registry builder into submitqueue/core/topicregistry
  3. Extract controller registration helpers into submitqueue/orchestrator/controller/wire
  4. Add data-driven profile hints to QueueConfig (YAML-driven extension selection)
  5. Simplify example orchestrator main.go from ~950 to ~300 lines

Also adds the RFC to doc/rfc/index.md. Doc-only change, no code modifications.

Test Plan

CI/Build validation

Revert Plan

git revert

Jira Issues

API Changes

No API changes

Monitoring and Alerts

Standard monitoring via existing dashboards

🤖 Generated by minion
Co-Authored-By: minion-bot noreply@minion.uber.com
Co-Authored-By: jamy@uber.com
Agent: claude-code | Task: b069bea1-12a5-478a-b517-61ce0abd6749

View your task: https://minion.uberinternal.com/task/b069bea1-12a5-478a-b517-61ce0abd6749

Propose extracting per-queue extension profiles, topic-registry builder,
and controller registration from the orchestrator example main.go into
reusable domain packages, plus data-driven profile hints in QueueConfig.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@JamyDev JamyDev changed the title docs(submitqueue): add modular queue wiring RFC Modularize orchestrator wiring: extract queue profiles, topic registry builder, and controller registration Jun 30, 2026

This keeps the controller list in the domain layer (testable, importable) and reduces the wiring main.go to: build dependencies → call `wire.RegisterPrimary` → call `wire.RegisterDLQ`. Adding a new pipeline stage becomes a single-file edit in this package.

### 4. Extend `QueueConfig` with optional profile hints

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This may be a bit controversial @behinddwalls :)

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