GitFarm: Git® as a Service for Large-Scale Monorepos
Summary
At Uber’s monorepo scale, traditional Git workflows create bottlenecks through multi-gigabyte clones, local checkouts, repeated synchronization, and independent fetch or push operations across automation systems. The post describes GitFarm, a Git as a Service platform exposed through a high-performance gRPC API that executes standard Git commands in secure, ephemeral sandboxes backed by pre-warmed repository and container pools. Each backend maintains a bare clone, receives push-based updates and periodic git fetch operations every five minutes, while clients can explicitly fetch when they need current state. The design provides a full checkout in under 500 milliseconds and reduced client-side resource utilization by over 80%, while avoiding local clones and long initial clone delays.
Context
At Uber, automation systems and developer services invoke Git millions of times per day across multiple monorepos. Maintaining separate full checkouts caused high compute, memory, storage, I/O, and upstream Git-server costs; cloning the Go monorepo alone takes roughly 15 minutes and uses about 6 CPU cores, 32 GB of memory, and over 40 GB of disk.
Approach / What changed
GitFarm centralizes Git client operations behind a high-performance gRPC API. A Gateway authenticates, authorizes, and routes requests using Redis-tracked sandbox availability; backend nodes maintain bare repository clones, synchronize through push-based updates and five-minute fetches, and execute commands in identity-scoped, ephemeral sandboxes with pre-warmed repository and container pools.
Takeaways
GitFarm is not a Git SCM: it executes standard Git commands on behalf of services but does not store, replicate, or serve repositories.
Repository freshness is configurable per request: clients can run an explicit git fetch for current state, or rely on eventually consistent backend synchronization to reduce latency and redundant fetches.
Production use reduced client-side resource utilization by over 80%, and clients can obtain a full Git checkout in under 500 milliseconds.
Source and freshness
- Source
- uber.com
- Published
- Added to Yomu
Summaries are generated from the original by a language model. Check the original before relying on it.
Keep reading
Related reading
The Good Stuff
Paid picks we use ourselves. Links carry a referral code — a subscription through one earns us a commission at no extra cost to you.
The best engineering reads, once a week
One useful email. Unsubscribe anytime.