Uber SubmitQueue: a high-performance speculative merge queue

Uber says it can auto-sort coding traffic — commenters say this is either genius or proof the roads are broken

TLDR: Uber open-sourced a system that automatically sorts incoming code changes so big teams can ship faster without breaking the main codebase. Commenters instantly turned it into a brawl over whether this is a brilliant fix for huge projects or just another bandage for the chaos of giant code collections.

Uber has unveiled SubmitQueue, a tool meant to keep a company’s shared codebase from turning into a daily pileup. In plain English: instead of checking one incoming change at a time, it tries several in parallel, predicts what the main version of the code will look like, and automatically drops in the safe ones while blaming and retrying around the troublemaker. Uber is pitching it as a lifesaver for huge teams all editing the same giant code collection at once.

But the real fireworks were in the comments, where the crowd immediately split into camps. One side basically yelled, “Didn’t OpenStack’s Zuul already do this?” with one commenter adding the spicier swipe that if your team needs a system like this, maybe your development speed is the actual problem. Ouch. Another critic went even harder, arguing that giant all-in-one codebases help a tiny priesthood of maintainers while everyone else suffers — and pointed to the very existence of yet another merge tool as evidence that the whole setup is a mess.

Still, defenders showed up with receipts. One praised Airbnb’s internal version, Evergreen, calling it awesome and lamenting that more companies don’t open-source this kind of infrastructure. Another brought realism to the party: even Google, they said, struggles to keep its mega-repository perfectly healthy, so maybe chasing a permanently spotless main branch is fantasy. The mood was classic internet tech drama: part admiration, part eye-roll, part “this is old news,” and part “please release more of the good stuff.”

Key Points

  • SubmitQueue validates multiple speculative rebases in parallel against predicted future states of HEAD instead of processing changes strictly one at a time.
  • When validation passes, changes are landed automatically; when it fails, SubmitQueue isolates the offending change and retries the rest without human intervention.
  • The project is designed for large monorepos and fast-moving teams where concurrent changes can create conflicts and destabilize builds.
  • The repository organizes shared Go code under platform/ and separates product domains into their own trees with components such as gateway, orchestrator, entity, extension, and core.
  • The project includes local development instructions using Docker, Docker Compose, MySQL, and grpcurl, and is marked as under active development under the Apache License 2.0.

Hottest takes

"reinvented OpenStack's Zuul?" — inigyou
"if you're pushing changes at the sort of velocity that requires it, you're doing something wrong" — inigyou
"Not even Google can keep its google3 monorepo consistently buildable" — kccqzy
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.