Skip to content

feat(orchestrator): add pipeline stage controllers#63

Merged
behinddwalls merged 1 commit into
mainfrom
preetam/orch-stages
Feb 24, 2026
Merged

feat(orchestrator): add pipeline stage controllers#63
behinddwalls merged 1 commit into
mainfrom
preetam/orch-stages

Conversation

@behinddwalls
Copy link
Copy Markdown
Collaborator

Summary

  • Adds 7 new queue message controllers for all orchestrator pipeline stages: batch, speculate, build, buildsignal, merge, mergesignal, and finalize
  • Adds 6 new topics to the TopicRegistry (batched, build, build-signal, to-merge, merge-signal, finalize)
  • Wires all controllers into the example orchestrator server with subscription configs

Pipeline flow

request → to-batch → speculate → build → build-signal
                               → to-merge → merge-signal
                     finalize (terminal)

Test plan

  • All 15 unit tests pass (8 new controller test suites + 7 existing)
  • Each controller tests: success, invalid JSON (NonRetryableError), publish failure, interface implementation
  • BUILD.bazel files generated via gazelle

@behinddwalls behinddwalls requested review from a team and sbalabanov as code owners February 24, 2026 20:31
Comment thread example/server/orchestrator/main.go
Comment thread core/consumer/registry.go
Comment thread core/consumer/registry.go
@behinddwalls behinddwalls merged commit 87c5fac into main Feb 24, 2026
8 checks passed
Copy link
Copy Markdown
Contributor

@sbalabanov sbalabanov left a comment

Choose a reason for hiding this comment

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

better have TODOs at appropriate controllers

Comment thread core/consumer/registry.go
TopicBuildSignal Topic = "build-signal"
// TopicToMerge is where requests are published for merging.
TopicToMerge Topic = "to-merge"
// TopicMergeSignal is where merge signals are published for processing.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

from the description, not clear the difference from the previous one

msg := delivery.Message()

// Deserialize request entity
request, err := entity.RequestFromBytes(msg.Payload)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

would it be a request that we trigger the build for? I thought it has to be a series of batches

msg := delivery.Message()

// Deserialize request entity
request, err := entity.RequestFromBytes(msg.Payload)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

ditto, at least please add TODO

@behinddwalls behinddwalls deleted the preetam/orch-stages branch February 24, 2026 23:12
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.

4 participants