Modularizing a 10-Year Monolith: The Architecture, The People, and the Pain
- Track: Go
- Room: UB5.132
- Day: Sunday
- Start: 15:00
- End: 15:30
- Video only: ub5132
- Chat: Join the conversation!
Most Go codebases begin as straightforward layered monoliths, but years of growth often turn those layers into a web of hidden coupling and hard-to-predict side effects. Rewrites promise a clean slate but rarely succeed in practice. What the Go community lacks are real examples of large open source Go projects that have completed a transition to a modular monolith.
This talk presents the first major open source Go project undergoing this evolution. It covers how we are moving from a decade-old layered architecture to a modular design while continuing to ship features to hundreds of production environments. This is not theory. This is architectural change in a live system with real contributors, long CI pipelines, and legacy assumptions embedded throughout the code.
You will see practical strategies for decoupling features, aligning code boundaries with product teams, introducing modular service packages, and modifying database schemas without slowing ongoing development. We walk through the familiar pain points in large Go monoliths, including tight coupling, long test cycles, and frequent merge conflicts, and show how steady incremental refactoring creates a stronger and more adaptable architecture.
Whether you are working on a fast-growing Go project or maintaining a mature production system, you will leave with clear and concrete techniques to modernize your architecture safely and sustainably, all without stopping feature work or risking a disruptive rewrite.
Speakers
| Victor Lyuboslavsky |