1 min readfrom InfoQ

Behind the Scenes: Block 450 JVM Repositories Into Monorepo to Reduce Dependency Drift

Our take

Block, Inc. tackled a significant engineering challenge: migrating approximately 450 JVM repositories into a single monorepo spanning Cash App and Square. This strategic move demonstrably reduces dependency drift and streamlines coordination overhead, supporting roughly 8,800 weekly builds with a remarkably efficient ~10-minute p90 CI time. The architecture leverages dependency graph–based builds, selective CI, and custom IDE tooling to enhance cross-service changes, build visibility, and the overall developer experience.
Behind the Scenes:  Block 450 JVM Repositories Into Monorepo to Reduce Dependency Drift

The move by Block, Inc. to consolidate roughly 450 JVM repositories into a single monorepo across Cash App and Square engineering represents a significant, albeit increasingly common, evolution in software development practices. While the concept of a monorepo isn’t new, the sheer scale of this implementation – supporting 8,800 weekly builds with remarkably fast CI times (around 10 minutes p90) – highlights the growing viability and necessity of this approach for large, complex organizations. The challenges inherent in managing dependencies across numerous microservices are well-documented, often leading to “dependency drift” – a situation where different services rely on incompatible versions of shared libraries, hindering collaboration and increasing the risk of integration issues. Block’s decision directly addresses this problem, and their focus on dependency graph-based builds and selective CI demonstrates a sophisticated understanding of how to mitigate the performance bottlenecks that can plague monorepo architectures. This resonates with discussions around efficient system design, as explored in System Design for ML Interviews: 10 Real Problems Walked Through, where thoughtful architecture is paramount to handling scale and complexity.

The benefits Block outlines – improved cross-service changes, enhanced build visibility, and a better developer experience – are all compelling justifications for undertaking such a substantial engineering effort. The custom IDE tooling they’ve developed further underscores their commitment to optimizing the developer workflow within this new structure. It’s also worth noting the parallel with efforts to streamline interactions with external services, as explored in Project Tutorial: Build a Multi-Provider LLM Gateway. Both scenarios involve managing complexity and ensuring consistent, reliable interactions, albeit across different domains. Block's reliance on dependency graphs to drive builds is a key differentiator; it allows for targeted testing and deployment, significantly reducing the impact of changes on the broader system. The emphasis on selective CI, only triggering builds for affected components, is particularly impressive given the size of the codebase and build volume.

This migration isn’t simply about consolidation; it's about fostering a more cohesive and efficient engineering culture. By centralizing code and dependencies, Block has created a shared platform for innovation and collaboration. The increased visibility into the codebase allows developers to better understand the impact of their changes and contribute more effectively to cross-service initiatives. While the initial migration process undoubtedly presented challenges, the long-term gains in terms of developer productivity and reduced risk are likely to outweigh the upfront investment. The adoption of such strategies also aligns with emerging trends in DevOps and software architecture, where automation, observability, and developer empowerment are increasingly prioritized. The ongoing integration of AI into development workflows, as exemplified by features in tools like GitLab, as discussed in GitLab 19.0 Embeds Agentic AI in Secrets, Merge Requests, and Supply Chain Security, further amplifies the potential for monorepos to enhance efficiency and security.

Looking ahead, the success of Block’s monorepo implementation will likely influence other large organizations grappling with similar dependency management challenges. The key takeaway isn't simply adopting a monorepo, but rather embracing the underlying principles of centralized dependency management, automated build processes, and developer-centric tooling. As software systems continue to grow in complexity and the pace of innovation accelerates, the ability to efficiently manage dependencies and foster collaboration will become increasingly critical. The question now is: how can organizations effectively balance the benefits of monorepos with the need for modularity and independent deployment – and what new tooling and architectural patterns will emerge to support this evolving landscape?

Block, Inc. describes migrating ~450 JVM repositories into a monorepo across Cash App and Square engineering to reduce dependency drift and coordination overhead. The system supports ~8,800 weekly builds with ~10 min p90 CI time. The approach improves cross-service changes, build visibility, and developer experience through dependency graph–based builds, selective CI, and custom IDE tooling.

By Leela Kumili

Read on the original site

Open the publisher's page for the full experience

View original article

Tagged with

#self-service analytics tools#cloud-based spreadsheet applications#real-time data collaboration#financial modeling with spreadsheets#real-time collaboration#self-service analytics#rows.com