SubmitQueue is a high-performance speculative merge queue that keeps your trunk consistently green at scale. Rather than validating changes one at a time, SubmitQueue speculatively rebases and validates multiple changes in parallel against predicted future states of HEAD. When validations pass, changes land automatically. When they fail, SubmitQueue isolates the offending change and retries the rest — all without human intervention.
Designed for large monorepos and fast-moving teams where concurrent changes can introduce subtle conflicts and destabilize builds.
Requires Docker and Docker Compose. See Development Setup for full prerequisites.
# Build everything
make build
# Run unit tests
make test
# Start full stack locally (Gateway + Orchestrator + MySQL via Docker Compose)
make local-start
# Test with grpcurl
grpcurl -plaintext -d '{"message": "hello"}' localhost:8081 uber.submitqueue.gateway.SubmitQueueGateway/Ping
# Stop services
make local-stopSee example/README.md for more examples including running individual services and clients.
| Document | Description |
|---|---|
| Development Setup | Prerequisites, build, environment, IDE setup |
| Contributing | How to contribute, workflow, guidelines |
| Testing Guide | Unit, integration, and E2E testing patterns |
| Architecture Guide | Project layout, patterns, conventions |
| Examples | Running services, clients, API reference |
| RFCs | Design documents and proposals |
SubmitQueue is under active development. We welcome contributions and feedback.
See CONTRIBUTING.md for how to get started.
Licensed under the Apache License 2.0.