Backend Monorepo & Snapshot Sunsetting

Updates

TL; DR

Background

Back in 2019, we pushed for the multi-repository approach hard and helped teams to migrate away from our old, deprecated monorepo. Our help includes creating the gradle plugin for Traveloka Java repository (thanks to Salvian), cleaning up many modules, enabling snapshots of cleaned monorepo modules, and regular consultation with teams undergoing migration. However, due to a multitude of reasons, we stopped actively pushing this project in early 2020. We thought, sooner or later teams will migrate away from monorepo, and that teams who already moved away won't have any trouble from monorepo.

Turns out we are wrong on both counts. Monorepo still sees active development to this day, most likely due to remaining teams not having any spare resource to attempt a migration. This is in spite of an increasing amount of problems with developing in monorepo, including longer and longer build time, broken develop branch becoming the normalized state, and old Gradle version which doesn't support Java 11 at all. Also, teams away from monorepo can still get problems from monorepo, like unexpected interaction between snapshot dependency and library version locking, or still have to develop in monorepo for some of their modules to connect with services still in monorepo.

Thus, we want to revisit this project again, but with a stronger goal, decommissioning monorepo by early July 2022. This also includes deprecating publishing and usage of snapshots by January 2022.

What Do You Need to Do

That's all for the announcement. This will be posted biweekly in the backend, technology and multirepo-all channel. Thank you for your attention.

This is a copy of https://29022131.atlassian.net/l/c/XASnAhvt