MODULARIZATION HOW HARD CAN IT BE
summary
Spotify faces crippling build times and responds by creating a module-creation script, enforcing dependency analysis, and applying dependency inversion with DI so modules depend on interfaces not the monolith. Static tools used include lint, PMD, FindBugs, Checkstyle and a custom difflint. One feature’s unit tests run in under 5 seconds after extraction. Metrics show the main app dropping from ~600,000 to ~290,000 LOC while the codebase grows to 25 million lines across ~400 modules and ~14,000 R files.
AI-written summary · about
chapters (15)
- 0:00Introduction to modernization
- 1:46Why Spotify started modernizing
- 3:33Starting the modernization team
- 4:57Initial tooling and module structure
- 8:06First feature extraction attempt
- 9:11Dependency analysis process
- 12:44Lessons learned early on
- 13:49Best practices for code organization
- 19:24SOLID principles and dependency inversion
- 21:12Metrics and progress over time
- 23:22Build times and module count impact
- 25:55Biggest takeaways from the journey
- 29:50Advice and tooling recommendations
- 31:55Wrap-up and final thoughts
- 33:19Q&A session








