Skip to content
Carolina Code Conference
Served by PHP (built-in SAPI) in 44ms

2025 speaker

Ruthie Ballenger

Ruthie Ballenger

Full Stack Architect

Greenville, SC

Ruthie is a Greenville born native who currently works for Michelin as a Platform Architect for the Customer Experience domain with over 29 years of experience in Software Development with wide range of knowledge in many programming languages and frameworks.

2025 · intermediate

Using an Anti Corruption Layer to Migrate Legacy Data

To modernize applications without migrating outdated database schemas or unused data, it is essential to adopt a strategic approach to this migration. At Michelin IT, my team undertook the task of modernizing our application while simultaneously optimizing the database schema to eliminate redundant data and outdated schemas.

Our goal was to ensure continuous system operation while incrementally enhancing our web application, feature by feature. We aimed to transition our database from MySQL 5.6 to a PostgreSQL PaaS instance to leverage improved availability and advanced features.

Since we needed to keep the legacy application running and keep the data in sync with the new modern functionality however we needed to use the modernized data in the legacy application and modern application. We adopted the strategy of using an Anti Corruption Layer to keep the data in sync.

We gained significant insights into this strategy, including valuable lessons on what to avoid. This presentation outlines our approach to creating and utilizing an Anti-Corruption Layer (ACL), along with the lessons learned. It also includes Java code examples for reference.

From the talk