Skip to content

Commit efccfa3

Browse files
JamyDevclaude
andauthored
feat(orchestrator): rewrite main.go to use pipeline.Construct (#440)
Replace ~500 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) - Three *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. ## Test Plan Boot service with main.go and test against simulator ## Issue https://linear.app/uber/issue/CODEM-209/example-figure-out-a-better-structure-for-wiring-up ## Stack - #402 - #403 - #404 - @#440 --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 772b4f8 commit efccfa3

3 files changed

Lines changed: 245 additions & 616 deletions

File tree

service/submitqueue/orchestrator/server/BUILD.bazel

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,24 @@ exports_files(
77

88
go_library(
99
name = "orchestrator_lib",
10-
srcs = ["main.go"],
10+
srcs = [
11+
"main.go",
12+
"profiles.go",
13+
],
1114
importpath = "github.com/uber/submitqueue/service/submitqueue/orchestrator/server",
1215
visibility = ["//visibility:private"],
1316
deps = [
14-
"//api/runway/messagequeue:go_default_library",
1517
"//api/submitqueue/orchestrator/protopb:go_default_library",
16-
"//platform/consumer:go_default_library",
17-
"//platform/errs:go_default_library",
1818
"//platform/errs/generic:go_default_library",
1919
"//platform/errs/mysql:go_default_library",
2020
"//platform/extension/consumergate:go_default_library",
2121
"//platform/extension/consumergate/file:go_default_library",
2222
"//platform/extension/consumergate/noop:go_default_library",
23-
"//platform/extension/counter:go_default_library",
2423
"//platform/extension/counter/mysql:go_default_library",
25-
"//platform/extension/messagequeue:go_default_library",
2624
"//platform/extension/messagequeue/mysql:go_default_library",
2725
"//platform/http:go_default_library",
26+
"//platform/pipeline:go_default_library",
2827
"//submitqueue/core/changeset:go_default_library",
29-
"//submitqueue/core/topickey:go_default_library",
30-
"//submitqueue/entity:go_default_library",
3128
"//submitqueue/extension/buildrunner:go_default_library",
3229
"//submitqueue/extension/buildrunner/fake:go_default_library",
3330
"//submitqueue/extension/changeprovider:go_default_library",
@@ -40,26 +37,9 @@ go_library(
4037
"//submitqueue/extension/conflict/fake:go_default_library",
4138
"//submitqueue/extension/conflict/fileoverlap:go_default_library",
4239
"//submitqueue/extension/conflict/none:go_default_library",
43-
"//submitqueue/extension/scorer:go_default_library",
44-
"//submitqueue/extension/scorer/composite:go_default_library",
45-
"//submitqueue/extension/scorer/fake:go_default_library",
46-
"//submitqueue/extension/scorer/heuristic:go_default_library",
47-
"//submitqueue/extension/storage:go_default_library",
4840
"//submitqueue/extension/storage/mysql:go_default_library",
4941
"//submitqueue/extension/validator/fake:go_default_library",
50-
"//submitqueue/orchestrator/controller:go_default_library",
51-
"//submitqueue/orchestrator/controller/batch:go_default_library",
52-
"//submitqueue/orchestrator/controller/build:go_default_library",
53-
"//submitqueue/orchestrator/controller/buildsignal:go_default_library",
54-
"//submitqueue/orchestrator/controller/cancel:go_default_library",
55-
"//submitqueue/orchestrator/controller/conclude:go_default_library",
56-
"//submitqueue/orchestrator/controller/dlq:go_default_library",
57-
"//submitqueue/orchestrator/controller/merge:go_default_library",
58-
"//submitqueue/orchestrator/controller/mergeconflictsignal:go_default_library",
59-
"//submitqueue/orchestrator/controller/mergesignal:go_default_library",
60-
"//submitqueue/orchestrator/controller/speculate:go_default_library",
61-
"//submitqueue/orchestrator/controller/start:go_default_library",
62-
"//submitqueue/orchestrator/controller/validate:go_default_library",
42+
"//submitqueue/orchestrator:go_default_library",
6343
"@com_github_go_sql_driver_mysql//:go_default_library",
6444
"@com_github_uber_go_tally//:go_default_library",
6545
"@org_golang_google_grpc//:go_default_library",

0 commit comments

Comments
 (0)