• By: Jack Dai, Howard Ho, Loc Dinh, Stepan Goncharov, Ted Tenedorio, and Thomas Bao At Airbnb, we recently completed migrating our largest repo, the JVM monorepo, to Bazel. • This repo contains tens of millions of lines of Java, Kotlin, and Scala code that power the vast array of backend services and data pipelines behind airbnb.com. • Migration in numbers (4.5 years of work): Build CSAT: 38% → 68% 3-5x faster local build and test times 2-3x faster IntelliJ syncs 2-3x faster deploys to the development environment In this blog post, we’ll discuss the why , share some highlights on the how , and finish off with key learnings . • Before the migration, our JVM monorepo used Gradle as its build system. • We decided to migrate to Bazel because it offered three key advantages: speed, reliability, and a uniform build infrastructure layer. • Speed Bazel’s cacheable, portable actions allow us to scale performance with remote execution In 2021, builds of large services often took >20 minutes locally and pre-merge CI p90 was 35 minutes.
Article Summaries:
- Airbnb has finished migrating its largest JVM monorepo-containing tens of millions of lines of Java, Kotlin, and Scala-to Bazel after 4½ years of work. The switch from Gradle to Bazel was driven by the need for faster, more reliable builds and a unified infrastructure. Post‑migration, build satisfaction scores rose from 38 % to 68 %, local build and test times improved 3-5×, IntelliJ syncs and development‑environment deploys accelerated 2-3×. Bazel’s remote execution, caching, and sandboxing eliminated long Gradle configuration times, reduced resource contention, and improved consistency across local and CI environments. The move also aligns Airbnb’s other language repos (web, iOS, Python, Go) under a single build system.
Sources: