Skip to content

feat(stovepipe): add BuildRequest/BuildSignal queue contract#376

Open
roychying wants to merge 2 commits into
uber:mainfrom
roychying:chenghan.ying/stovepipe-build/buildsignal-queue-contract
Open

feat(stovepipe): add BuildRequest/BuildSignal queue contract#376
roychying wants to merge 2 commits into
uber:mainfrom
roychying:chenghan.ying/stovepipe-build/buildsignal-queue-contract

Conversation

@roychying

Copy link
Copy Markdown
Contributor

Why?

Stovepipe's pipeline needs two more internal queue stages to carry a request through building and polling its build result: build (process/analyze hands off a request once its build scope is decided) and buildsignal (build hands off the triggered build so its status can be polled to a terminal state). Both stages' wire payloads need to be defined before their controllers can be implemented, per the algorithms in doc/rfc/stovepipe/steps/build.md and buildsignal.md.

What?

  • Added buildsignal.proto / generated buildsignal.pb.go, defining BuildSignal { id } — the build id to poll, following the same "id only" convention as the rest of the internal pipeline (producer and consumer share the store, so redelivery stays idempotent).
  • Added TopicKeyBuildSignal alongside the existing TopicKeyBuild in topics.go, and the BuildSignal alias in messagequeue.go.
    • Renamed process_test.gomessagequeue_test.go since its round-trip and topic-key-binding guard tests are package-wide, not process-specific, and extended them to cover BuildSignal (round-trip test, wire-format check, and the TestTopicKeysBindEveryTopicKey drift guard).

Test Plan

  • make build and make test - all clean

Issue

@roychying
roychying requested review from a team, behinddwalls and sbalabanov as code owners July 15, 2026 21:45
@roychying
roychying force-pushed the chenghan.ying/stovepipe-build/buildsignal-queue-contract branch from e9cb9e4 to 75f2997 Compare July 16, 2026 18:11
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.

2 participants