Session
From Shared Code to Shared Responsibility: Scaling Inner-Source in Java
Inner-source makes it easy for teams to share code, but governing shared libraries across many services becomes complex quickly. In our case, more than 60 event-driven microservices rely on many of the same internal libraries and architectural patterns. As APIs evolve, even small changes can impact dozens of downstream services.
Semantic versioning helps communicate the impact of changes, but in practice it requires discipline. When multiple teams depend on the same libraries, unclear versioning or poorly managed breaking changes can quickly slow down development. That's why we opted to automatically enforce semantic versioning.
We also explored alternatives such as Java monorepos, which allow APIs to remain stable while implementations evolve, though this approach has its own trade-offs.
When breaking changes are unavoidable, documentation alone is rarely enough. Using OpenRewrite, we automate migrations so upgrades become repeatable instead of manual work across many repositories.
In this talk you will learn practical dos and don’ts for scaling inner-source, how to apply semantic versioning effectively for shared libraries, and how automated refactoring can reduce the cost of breaking changes.
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top