ArchitectureArchitecture
Conference40min
ADVANCED

Modernizing the Legacy

This talk details TalentLMS’s modernization of a decade-old monolith, highlighting strategies like breaking DevOps silos, restructuring teams, and adopting event-driven architecture and zero-downtime migrations. Attendees will gain practical insights on evolving legacy systems sustainably and avoiding pitfalls, while leveraging monolith strengths to build a modulith architecture.

Aggelos Bellos
Aggelos BellosEpignosis

talkDetail.whenAndWhere

talks.scheduleTBD
Concert Hall
talks.roomOccupancytalks.noOccupancyInfo
talks.description
How do you evolve a decade-old monolith without grinding innovation to a halt or turning every refactor into a game of code Jenga? In this talk, I will share the journey of TalentLMS as we modernized one of our most critical legacy applications. We will explore how we broke down DevOps silos, restructured teams with Domain-Driven Design and Team Topologies, and introduced practices like living documentation, event-driven architecture, and zero-downtime migrations.
You will learn how we embraced the strengths of the monolith, avoided the trap of creating micro-legacies, and laid the foundation for a sustainable modulith architecture. Expect practical insights, hard lessons, and a few laughs from the battlefield of large-scale modernization.
modernization
monolith
architecture
devops
talks.speakers
Aggelos Bellos

Aggelos Bellos

Epignosis

Greece

I’m a Senior Software Engineer on the Architecture Team at TalentLMS and a co-organiser of Devstaff, a developer community. My focus is on Domain-Driven Design, Test-Driven Development, and the interplay between socio-technical systems and architecture (hello Team Topologies!). Outside of work, I contribute to open source projects such as OpenAPI, PHPStan, PIE and many others in the PHP ecosystem. Last but not least, I share solutions and insights from real-world problems on my blog.

talkDetail.rateThisTalk

talkDetail.poortalkDetail.excellent

talkDetail.ratingNotYetAvailable

talkDetail.ratingAvailableWhenStarted

talkDetail.signInRequired

talkDetail.signInToRateDescription