メルカリでは開発の効率化とスケーラビリティを目的としてマイクロモジュールアーキテクチャを採用しています。メルカリiOSアプリは600以上のモジュールから構成されており、各カンパニーや部署が並行して開発を進めることが可能です。Bazelによるビルドキャッシュの共有により、ビルドプロセスの効率が大幅に向上します。これにより、ビルド時間の短縮と開発の効率化が可能になります。
しかし、マイクロモジュールアーキテクチャを採用する際に直面する最大の課題は、大量のモジュール間の依存関係の適切な設定と管理です。不適切な依存関係の設定は、ビルドキャッシュの非効率な利用やビルド時間の増大、さらにはキャッシュサイズの肥大化によるインフラコストの増加を引き起こします。さらに、私が所属するメルペイが提供するいくつかの機能は、マイクロモジュールアーキテクチャに最適でないレガシーな設計のモジュールを含んでおり、これらを効果的に扱うための戦略も必要です。
このトークでは、巨大なモジュール間の依存関係をどのように管理し、適切に設定するか、そしてこれまでに直面した問題をどのように解決してきたかについて詳しく紹介します。また、Bazel以外のビルドシステムを使用している開発者にとっても役立つ、マイクロモジュールアーキテクチャの実践的な採用事例としても楽しんでいただける内容にします。