Recent Posts
Archives

PostHeaderIcon [KotlinConf2025] Blueprints for Scale: What AWS Learned Building a Massive Multiplatform Project (2nd version)

In a talk on building large-scale, multiplatform projects, Ian Botsford and Matis Lazdins of Amazon Web Services (AWS) shared their experiences creating the AWS SDK for Kotlin. This project is colossal, spanning over 300 services and targeting eight different platforms, with its code distributed across four repositories and nearly 500 Gradle modules. The talk provided a blueprint for managing a codebase with over 8.6 million lines of code, 98% of which is auto-generated. The key to their success, they claimed, was a set of five core principles that kept their maintainers sane and productive.

A Principled Approach to Development

Botsford and Lazdins detailed five tenets for managing a project of this scale: owning your dependencies, structuring the project for growth, designing for Kotlin Multiplatform (KMP) from the beginning, maintaining backward compatibility, and optimizing the maintainer experience. They provided a practical example of owning dependencies by discussing their choice of HTTP clients. Instead of exposing third-party library types directly, which could lead to inconsistent configurations and vulnerability to unexpected API changes, they created a common, abstract interface to maintain consistency and shield users from underlying implementation details.

Automating for Maintainer Sanity

A significant part of their strategy focused on the maintainer experience. Lazdins explained the importance of automating repetitive and mundane tasks to free up time for more complex work. They developed broad checks to catch issues before they are merged, which helps prevent regressions and enforce project standards. The speakers stressed that these checks should be highly informative but also overridable, giving developers autonomy while providing valuable feedback. This focus on a positive maintainer experience is crucial for the health of any large open-source project and is a key factor in the daily releases that happen sometimes multiple times a day.

Links:

Leave a Reply