Skip to content

feat(runway): add orchestrator consuming merge-conflict-check and merge queues#265

Open
behinddwalls wants to merge 1 commit into
mainfrom
preetam/runway-orchestrator
Open

feat(runway): add orchestrator consuming merge-conflict-check and merge queues#265
behinddwalls wants to merge 1 commit into
mainfrom
preetam/runway-orchestrator

Conversation

@behinddwalls

@behinddwalls behinddwalls commented Jun 18, 2026

Copy link
Copy Markdown
Collaborator

Summary

Why?

The Runway merge-queue contract (api/runway/messagequeue) and SubmitQueue's client side of it already exist on main: SubmitQueue publishes MergeRequests to the merge-conflict-check and merge queues and consumes the -signal results. The service that actually consumes those request queues — Runway itself — was missing. This adds it.

What?

A new runway domain with an orchestrator that consumes Runway's two request queues. The controllers reuse the existing runwaymq.MergeRequest contract and topic keys rather than introducing a new entity:

  • runway/orchestrator/controller/mergeconflictcheck — subscribes to merge-conflict-check (dry-run check).
  • runway/orchestrator/controller/merge — subscribes to merge (committing merge).

Both currently deserialize the MergeRequest off the queue and log it; performing the merge and publishing a MergeResult to the corresponding signal queue is left as a marked TODO (no signal handling yet).

Supporting pieces:

  • api/runway/orchestratorRunwayOrchestrator Ping proto (registered in tool/proto + Makefile PROTO_PACKAGES) and a PingController, for parity with the submitqueue/stovepipe orchestrators.
  • example/runway/orchestrator/server — runnable consumer (MySQL queue, topic registry with both queues as consuming subscriptions, single primary consumer, gRPC Ping on :8086) plus Dockerfile, docker-compose.yml, and a gRPC ping client.
  • Makefile targets (build-runway-orchestrator-linux, local-runway-orchestrator-start/-stop, local-init-runway-queue-schema, run-client-runway-orchestrator) and root BUILD.bazel gazelle:resolve directives for the new protopb packages.

Test Plan

  • make build (249 targets)
  • make test (62 tests)
  • make lint
  • make check-gazelle
  • make check-tidy

Co-authored-by: Cursor cursoragent@cursor.com

…ge queues

## Summary

### Why?

The Runway merge-queue contract (`api/runway/messagequeue`) and SubmitQueue's client side of it already exist on main: SubmitQueue publishes `MergeRequest`s to the `merge-conflict-check` and `merge` queues and consumes the `-signal` results. The service that actually consumes those request queues — Runway itself — was missing. This adds it.

### What?

A new `runway` domain with an orchestrator that consumes Runway's two request queues. The controllers reuse the existing `runwaymq.MergeRequest` contract and topic keys rather than introducing a new entity:

- `runway/orchestrator/controller/mergeconflictcheck` — subscribes to `merge-conflict-check` (dry-run check).
- `runway/orchestrator/controller/merge` — subscribes to `merge` (committing merge).

Both currently deserialize the `MergeRequest` off the queue and log it; performing the merge and publishing a `MergeResult` to the corresponding signal queue is left as a marked TODO (no signal handling yet).

Supporting pieces:
- `api/runway/orchestrator` — `RunwayOrchestrator` Ping proto (registered in `tool/proto` + `Makefile` `PROTO_PACKAGES`) and a `PingController`, for parity with the submitqueue/stovepipe orchestrators.
- `example/runway/orchestrator/server` — runnable consumer (MySQL queue, topic registry with both queues as consuming subscriptions, single primary consumer, gRPC Ping on `:8086`) plus `Dockerfile`, `docker-compose.yml`, and a gRPC ping client.
- `Makefile` targets (`build-runway-orchestrator-linux`, `local-runway-orchestrator-start`/`-stop`, `local-init-runway-queue-schema`, `run-client-runway-orchestrator`) and root `BUILD.bazel` `gazelle:resolve` directives for the new `protopb` packages.

## Test Plan

- ✅ `make build` (249 targets)
- ✅ `make test` (62 tests)
- ✅ `make lint`
- ✅ `make check-gazelle`
- ✅ `make check-tidy`

Co-authored-by: Cursor <cursoragent@cursor.com>
@behinddwalls behinddwalls marked this pull request as ready for review June 18, 2026 23:28
@behinddwalls behinddwalls requested review from a team and sbalabanov as code owners June 18, 2026 23:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant