Powering Modularization at Airbnb: Plugin Architecture
summary
Airbnb implements a plugin architecture that combines an annotation processor with Dagger multibindings and a Scabbard intermediate generator so modules can contribute to runtime collections without direct dependencies. The system generates boilerplate (via a Ruby scaffolding script), enforces rules as compile errors (module types, allowed dependencies), and surfaces IDE find-usages. Deployed in 2019 after a 2018 vision, it reduces Dagger gotchas, cuts developer setup friction, and scales to hundreds of modules in production.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 1:56Benefits of modularization
- 3:17Build speed and caching
- 4:00Dependency management challenges
- 5:31Interface polymorphism solution
- 7:22Enabling contributor setup
- 9:11Module type rules and constraints
- 12:01Dagger multi-binding demo
- 13:51Custom annotation processor
- 15:30Unified Dagger system
- 17:41Plugin system use cases
related talks
32mBuild a modular Android app architecture
39mScaling an Android App from 1 to 100 developers with modularization.
45mDagger 2 - Back to Basics
40mModularizing Android Applications
40mPlugging into Anvil and powering up your dependency injection
39mModule Mayhem: Tales From Shared Business Logic
25mThe Lego Approach: Leveraging Reusability for a Seamless...
34mModular Flutter App Architecture Answering the What, When and How
