Commit f48bbb2
rfc(submitqueue): add modular queue wiring (#290)
## Summary
RFC at `doc/rfc/submitqueue/modular-queue-wiring.md` proposing a
declare-don't-assemble engine for the orchestrator's per-queue extension
wiring, topic registry, and controller lifecycle:
1. **`platform/lifecycle`** — `Component` interface (`Start`/`Stop`) and
ordered `Group` with rollback-on-partial-failure
2. **`platform/pipeline`** — `Construct[D]` engine that unifies topic
registry, controller creation, DLQ pairing, and consumer lifecycle into
one typed call over a `[]Stage[D]` table
3. **Service self-declaration** — each service exports a `Deps` struct
(seams), a `Stages` slice (topology), and a `Controllers` struct; no
assembly code
4. **Host-private profiles** — per-queue extension selection stays in
the host's `profiles.go`, never crosses the library boundary
5. **Fluent builder** — `submitqueue.New().WithQueue(...).Create()`
wraps the engine for the common single-orchestrator case
Recommends profiles stay in Go code (Option C) rather than adding hints
to `QueueConfig`. Also adds the RFC to `doc/rfc/index.md`.
Doc-only change, no code modifications.
## Test Plan
CI/Build validation
## Revert Plan
git revert
## API Changes
No API changes
## Monitoring and Alerts
Standard monitoring via existing dashboards
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>1 parent 15c4a33 commit f48bbb2
2 files changed
Lines changed: 676 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
| 20 | + | |
19 | 21 | | |
20 | 22 | | |
21 | 23 | | |
| |||
0 commit comments