
30,000 Merges a Day: Why Anthropic Abandoned Git for 'Scion'
This episode explores how Git, the industry-standard version control system, reaches its breaking point when confronted with extreme scale, such as Anthropic's 30,000 merges a day in a massive monorepo. Listeners will learn that Git's distributed architecture struggles with the demands of centralized, high-velocity development, leading to agonizingly slow operations and complex merge conflicts. This friction severely impacts developer productivity and makes version control a significant bottleneck.
Key Takeaways
- Anthropic developed 'Scion,' a custom version control system, to overcome Git's limitations when processing 30,000 merges daily, a decision explored in detail at https://vertexaisearch.cloud.google.com/grounding-api-redirect/AUZIYQFeT7-nl6oTNfePpfhq8nB66NSw7oG3VUsFCzFEGPIULWQ_8Tulc8o0cewjBNA1gBSfJj8kGSPpyeKpNqAjYyZw2fW31BTF66lUcA8E8Tyt51DEZXKoS2B_sE9zSKywyejJF_MJDqRdEOy9iw2BSVme9Vb6cGSvl5F-Jg==.
- Git's distributed, graph-based architecture struggled with Anthropic's extreme scale, where a single monorepo with millions of files and 30,000 daily merges caused basic operations like `git status` to take ten minutes.
- The performance bottlenecks and constant, complex merge conflicts severely degraded developer experience, shifting focus from coding to wrestling with version control issues and hindering productivity.
- Scion addresses these issues by fundamentally rethinking change integration, aiming for automatic, conflict-free merges through potential semantic understanding of code and a data model optimized for rapid snapshot comparisons in a high-velocity monorepo.
- Anthropic's move mirrors other tech giants like Google and Meta, indicating that at extreme scales, the cost of custom version control solutions outweighs the limitations of even robust general-purpose tools like Git.
Detailed Report
Anthropic, an AI safety and research company, faced an unprecedented challenge in its development workflow: processing 30,000 code merges per day. This extreme volume pushed Git, the industry-standard version control system, past its breaking point, leading the company to develop its own bespoke solution named 'Scion.'
Git's Breaking Point at Extreme Scale
For most development teams, 30,000 merges a day is an unimaginable figure. At Anthropic, this scale, combined with a massive monorepo containing millions of files, exposed fundamental limitations in Git's architecture. Operations that are typically instantaneous, such as `git status`, `checkout`, `diff`, or `log`, began taking up to ten minutes to complete. This slowdown wasn't just an inconvenience; it represented a significant barrier to developer productivity.
The core issue stemmed from a clash between Git's design and Anthropic's operational demands. Git excels at tracking individual changes and their lineage across distributed repositories, using a graph-based model. However, when thousands of developers contribute continuously to a single, colossal codebase (a monorepo), Git's efficiency plummets. The sheer volume of files, coupled with an incredibly dense and complex commit graph generated by daily merges, made basic file system traversals and history indexing computationally expensive.
The Toll on Developer Productivity
The impact on developer experience (DX) was profound. Waiting minutes for basic version control commands created significant cognitive load and context-switching overhead. More critically, the continuous torrent of changes led to a constant battle against merge conflicts. Git's default merge strategy, which often requires manual intervention, became a major bottleneck. Developers spent an inordinate amount of time resolving complex, multi-way conflicts, repeatedly pulling, resolving, and pushing changes. This 'death by a thousand paper cuts' shifted engineers' focus from building features to untangling version control issues, turning the system meant to facilitate collaboration into its primary hindrance.
The Clash with Trunk-Based Development
Anthropic, like many large, fast-moving organizations, favors a trunk-based development model. This approach involves integrating small, incremental changes very frequently into a single main branch, aiming to keep it always releasable and minimize divergence. Git, with its robust capabilities for distributed branching and managing complex divergent histories, is over-engineered for this specific workflow at Anthropic's scale. Its strengths in handling distributed development became liabilities when applied to a highly centralized, high-velocity trunk-based model, where the system needed to optimize for seamless, atomic changes directly to `main`.
Scion: A Purpose-Built Solution
To overcome these challenges, Anthropic built Scion, a custom version control system designed specifically for its hyper-scale, high-velocity monorepo environment. Scion fundamentally rethinks how changes are integrated, moving away from Git's traditional three-way merge that frequently demands manual intervention. Instead, Scion aims for automatic, conflict-free merges.
While specific technical details are proprietary, Scion likely incorporates several key architectural shifts:
- Semantic Merges: The system might understand code structure (e.g., Abstract Syntax Trees) rather than just text lines, allowing for more intelligent reordering and merging of non-conflicting changes.
- Optimized Data Model: Moving from Git's directed acyclic graph of commits, Scion might employ a snapshot-based approach, optimized for rapidly generating and comparing repository states, which speeds up operations like `status` and `checkout`.
- Monorepo-First Design: Scion's internal data structures, indexing, and communication protocols are built from the ground up for millions of files and high change throughput, centralizing the 'truth' of the repository and orchestrating merges intelligently.
Scion is not merely a faster Git; it represents a fundamentally different approach tailored to shift the burden of conflict resolution from the developer to the system, restoring focus to actual coding.
Part of a Larger Trend
Anthropic's decision to build Scion is not unique. Other tech giants facing similar extreme scale challenges have also developed their own bespoke version control systems, including Google with Piper, Meta with Sapling, and Microsoft with GVFS. This trend highlights that while Git is incredibly powerful and suitable for most use cases, its architectural assumptions do not align with the unique operational realities of organizations operating at unprecedented scale and velocity.
Building a custom version control system is a monumental engineering undertaking. However, for these companies, the immense investment is justified by the critical importance of developer productivity. Even small percentage improvements in efficiency, multiplied across thousands of engineers, translate into significant cost savings and faster innovation cycles, making the return on investment substantial.
The Future of Version Control
Anthropic's experience with Scion underscores that foundational tools have limits. As software development continues to scale and monorepos become more prevalent, the pain points currently experienced by hyper-giants will likely become more widespread. This necessitates a re-evaluation of what constitutes an effective version control system, emphasizing the need for more intelligent, automated merging and highly performant operations on massive codebases.
The choice of version control is not a one-size-fits-all decision; it must align with a team's specific scale, workflow, and performance requirements. While Git remains dominant, the frontier of extreme scale demands purpose-built infrastructure, demonstrating that sometimes, building a custom solution is the only way to maintain development velocity and innovation.
Show Notes
Works Referenced
- 30,000 Merges a Day: Why Anthropic Abandoned Git for 'Scion': The original article detailing Anthropic's challenges with Git and their custom version control system, Scion.
- Anthropic: An AI safety and research company that developed Scion to manage its large-scale codebase.
- Git: The widely used distributed version control system that Anthropic found insufficient for their extreme scale.
- Scion: Anthropic's custom-built version control system, discussed in the source article, designed to handle 30,000 merges a day and extreme monorepo scale.
- Google Piper: Google's custom version control system designed for its massive monorepo, handling billions of lines of code and hundreds of thousands of daily commits.
- Meta Sapling: Meta's custom source control system, built to manage its large monorepo and improve developer experience at scale.
- Microsoft GVFS (Git Virtual File System): Microsoft's solution to scale Git for large repositories, enabling efficient operations on massive codebases (now evolved into Scalar).
Glossary
- Git: A widely used distributed version control system that tracks changes in source code during software development, allowing multiple developers to collaborate.
- Monorepo: A software development strategy where all code for many projects is stored in a single repository, rather than in separate ones.
- Version Control System (VCS): A system that records changes to a file or set of files over time so that you can recall specific versions later, essential for collaborative software development.
- Trunk-based development: A software development practice where developers merge small, frequent updates to a single main branch (the 'trunk'), keeping it always releasable and minimizing long-lived feature branches.
- Merge Conflict: A situation that occurs when two or more developers make conflicting changes to the same part of a file, requiring manual intervention to resolve before the changes can be integrated.
- Developer Experience (DX): The overall quality of a developer's interaction with tools, systems, and environments, impacting their productivity, satisfaction, and ability to build software effectively.
- Abstract Syntax Tree (AST): A tree representation of the syntactic structure of source code, used by compilers and code analysis tools to understand the program's structure rather than just its text.