GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - uber/submitqueue: SubmitQueue is a high-performance speculative merge queue that keeps your trunk consistently green at scale.

BranchesTags
Open more actions menu

Latest commit

 

History

730 Commits
730 Commits

Folders and files

NameName
Last commit message
Last commit date
.agents/skills/autoreview
.agents/skills/autoreview
 
 
.claude/skills
.claude/skills
 
 
.github
.github
 
 
.vscode
.vscode
 
 
api
api
 
 
doc
doc
 
 
platform
platform
 
 
runway
runway
 
 
service
service
 
 
stovepipe
stovepipe
 
 
submitqueue
submitqueue
 
 
test
test
 
 
tool
tool
 
 
web
web
 
 
.bazelignore
.bazelignore
 
 
.bazelrc
.bazelrc
 
 
.bazelversion
.bazelversion
 
 
.dockerignore
.dockerignore
 
 
.envrc
.envrc
 
 
.gitignore
.gitignore
 
 
.yamlfmt
.yamlfmt
 
 
AGENTS.md
AGENTS.md
 
 
BUILD.bazel
BUILD.bazel
 
 
CLAUDE.md
CLAUDE.md
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
LICENSE
LICENSE
 
 
MODULE.bazel
MODULE.bazel
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 
REPO.bazel
REPO.bazel
 
 
go.mod
go.mod
 
 
go.sum
go.sum
 
 

Repository files navigation

SubmitQueue

CI Docs Go Version License Slack

SubmitQueue is a high-performance speculative submission 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.

Documentation: uber.github.io/submitqueue has guides, design docs (RFCs) and search.

Repository layout

Cross-domain Go code (errors, metrics, consumer framework, HTTP helpers, shared entities, shared extension contracts) lives under platform/. Each product domain has its own tree (submitqueue/, stovepipe/, …). Multi-service domains may split into gateway/ and orchestrator/; single-service domains keep controllers directly under the domain root. Stovepipe currently exposes ingestion behavior and runs its own queue pipeline. See AGENTS.md for conventions and import paths.

Quick Start

Put traffic through the queue and watch it land. Requires Docker; Bazel supplies Docker Compose. No repository, no account, no token.

# Start the full stack (Gateway + Orchestrator + Runway + MySQL)
make local-submitqueue-start

# Create changes, enqueue each as it is created, and watch them settle.
# It finds the running stack's port and provider itself — nothing to copy.
make demo-requests

# Stop services
make local-submitqueue-stop

PROVIDER decides where changes come from and what landing them does, and it is the only thing that changes between them:

PROVIDER A change is Landing it Needs
fake (default) a URI, and nothing else reports success without touching a repository nothing
git a branch in a bare repository on disk a real fetch, cherry-pick and push nothing
github a real pull request a real push to a real repository a repository and a token

The queue's own logic is real in all three: validation, batching, conflict analysis, speculation, and a request log recording the full trail from accepted to landed. PROVIDER=git make local-submitqueue-start is the first rung where a commit actually reaches a branch, and it still needs no credential.

Quickstart walks all three rungs — proving a change landed with git log, making one fail on demand, and what a live provider needs. See service/README.md for running individual services and clients.

Documentation

The documentation site at uber.github.io/submitqueue renders everything under doc/. The same documents, in the repository:

Document Description
Quickstart Run the stack and land changes — fake, local git, or GitHub
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

Project Status

SubmitQueue is under active development. We welcome contributions and feedback.

Community

Join us on Slack: submitqueue.slack.com — questions, design discussions, and help getting started.

Contributing

See CONTRIBUTING.md for how to get started.

License

Licensed under the Apache License 2.0.

About

SubmitQueue is a high-performance speculative merge queue that keeps your trunk consistently green at scale.

Topics

distributed-systemsgolangmerge-queuespeculationuber

Resources

Readme
Apache-2.0 license

Code of conduct

Code of conduct

Contributing

Contributing
Activity
Custom properties

Stars

252 stars

Watchers

1 watching

Forks

16 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.