Lessons from a Large JVM Monorepo – Janusz Kudelka, Airbnb
Airbnb’s JVM monorepo hosts 10s of millions of lines of Java, Kotlin and Scala. Each language posing unique challenges. This talk will show how we solved many of them, examples include: * importance of Remote Persistent Workers for RBE and how to maintain them * supporting cross-platform builds (mac and linux, x86 and arm) with universal binaries allowing cache sharing and dynamic execution across * safe and efficient usage of multiple source and runtime versions: mixed java 8 and 17, gradual runtime migrations, supporting multiple scala versions * our approach to compilation avoidance * straight to bytecode codegen when all other optimizations are not enough * what we tried that didn’t work * … and more