Cash App Yissachar Radcliffe

Cash App: From 30 Minutes Down to 10: Taming our Monolith's CI Build Times

Original post From 30 Minutes Down to 10: Taming our Monolith's CI Build Times

Article Summary

Cash App's monolith CI builds were taking 30 minutes at p50. Developers were stuck waiting through multiple build cycles just to get a green merge.

The Cash App team tackled their legacy 'Franklin' service, a million-line monolith that still powers critical functionality. Despite migrating to microservices, this codebase kept growing and its slow builds were crushing developer productivity.

Key Takeaways

Critical Insight

Through nine targeted optimizations (not just throwing money at more workers), Cash App reduced their monolith's CI build times by 67% at p50.

Continue reading

What This Article Covers

Problem

Franklin's codebase had accumulated dead code and wasn't properly modularized. With over a million lines of code and thousands of dependencies, any change required a full rebuild.

Solution

Yissachar Radcliffe's team removed tens of thousands of lines of dead code and split the monolith into multiple modules. This let Gradle's remote build cache identify unchanged components and compile them in parallel.

Impact

The modularization improved cache hit ratios and enabled more parallel compilation. Build times dropped 67% overall, falling from 30 minutes to 10 minutes at the p50 mark.

The team discovered why simply adding more test workers actually made things worse, not better.

This page summarizes “From 30 Minutes Down to 10: Taming our Monolith's CI Build Times” by Cash App, published Oct 12, 2023. All credit for the original work goes to the authors.

Read the original on code.cash.app (opens in new tab)

AI tools for iOS

Browse all AI tools →