Vanguard's journey to modernize its cash ledger from mainframe to cloud began in 2022, following the successful launch of their Cash Plus offering. Gareth Yoder, Cash Program Tech Lead, outlines a multi-year modernization effort driven by four to six teams within Vanguard's cash program. The cash ledger handles all money movement and account-to-account transactions (ACH, wire, etc.) for Vanguard brokerage accounts, supporting Web, Mobile, and Batch channels. The ecosystem operates in an active-active, multi-region, fault-tolerant manner, processing up to 30 million daily service calls and creating 500,000 daily ledger entries.
The modernization approach is structured around three parallel pillars: Data Migration, Producer Migration, and Consumer Migration. This parallel execution was deemed critical due to the enterprise priority of the project.
### AI-Accelerated Discovery: Legacy Analysis MCP
A significant turning point in the journey was the integration of a Legacy Analysis MCP (Mainframe Control Program) server. This server made Vanguard's legacy COBOL codebases, copybooks, and DBD catalog metadata AI-queryable. What previously took mainframe engineers up to 7 days for research and analysis, now takes only 15 minutes via an AI tool prompt. This led to faster feedback loops, benefiting product owners, technical leads, and developers by providing quick insights into legacy code functionality, data definitions, and business logic. The system can dissect complex COBOL structures, cross-reference data usage, and map legacy fields to modern cloud schemas.
### Data Migration
The data migration process leverages a standard Change Data Capture (CDC) approach. ETL (Extract, Transform, Load) jobs are used to scan both legacy and cloud databases, generating daily audit reports. The initial focus is on ensuring strong consistency by verifying row-level data counts. Subsequently, column-level comparisons are performed to ensure data integrity, verifying amounts, account information, state withholding, and federal withholding attributes. A key tip is to avoid over-engineering the migration solution, as the migration code will eventually be deprecated. Time zone differences for timestamps needed careful accounting for replication lag, but the team avoided over-engineering complex logic that would introduce new scenarios by trusting engineers to handle specific edge cases.
### Producer Migration
Legacy producers interacted with the infrastructure in three ways: Wrapped API, Direct Service Request, and Direct Table Insert. The most challenging was direct table inserts due to unknown data origins. The modernization strategy involved leveraging a common data schema and routing all interactions through a Gateway that wrapped modern APIs for cloud data inserts. Vanguard emphasized idempotency at the data layer to ensure strong consistency during writes, especially across multiple regions and in fault-tolerant architectures. This also helped in handling batch job traffic spikes without overwhelming the system. The recommendation is to reimagine the data ecosystem rather than a simple "lift and shift" to fully leverage cloud-native capabilities, including process flows, naming conventions, and field consolidation.
### Producer Onboarding
Onboarding 35 legacy producers was facilitated by publishing migration documentation via the MCP server. This reduced cross-team requests for information by mapping legacy ledger status codes from DB2 to the cloud. The AI tool played a crucial role in bridging the gap between legacy and cloud ecosystems, allowing mapping of verbose legacy status descriptions (e.g., OPEN, APPROVED_IN_ACTION) to clear, human-readable cloud ledger statuses (e.g., "Pending"). This significantly reduced the number of support chats and accelerated onboarding.
### Consumer Migration
Vanguard had 50 different consumers requiring access to cash ledger data, categorized into realtime (APIs with exploration), batch (Data Warehouse), and streaming (Kafka Event Topics). For real-time APIs like fund availability (highest traffic), consumers utilize GraphQL to subscribe only to the attributes relevant to their use cases. For batch, a data warehouse exposes data share views tailored to individual consumer data needs. For streaming, a Kafka event topic streams all inserts and updates to the database, leveraging at-least-once delivery. To handle potential duplicates from at-least-once delivery, consumers are required to implement idempotent-safe operations.
### AI Analysis: Determining Consumer Impact
When consumers register for a new data schema, they must provide a business use-case justification and SLAs. An AI agent then generates an up-to-date service description, outlines the top business functionality supported, and details the client impact if SLAs are breached. This helps identify the client impact during major incidents. By grouping business descriptions, the AI tool provides an accurate overview of modernized use cases and top business functionalities. For instance, it can differentiate response times for a batch application (hours) versus a real-time API (minutes), enabling quicker self-healing. This functionality assists in evaluating how to get faster response times by combining business use-case justifications with observability and log traces.
### Lessons for Leaders
1. Make legacy knowledge AI-queryable: Reduce research cycles from 7 days to 15 minutes by exposing legacy codebases via an MCP server.
2. Treat migration docs as a product: Self-service documentation and knowledge bases expedite onboarding for internal teams.
3. Reimagine, don't lift and shift: Use migration as an opportunity to rethink process flows, naming conventions, and data structures to leverage modern cloud capabilities.
4. Adopt AI incrementally: Embrace new technologies as they emerge. There's no perfect starting point; prioritize getting started and continuously enhancing the product.
5. Observability is non-negotiable: Understand data lineage (who produces, who consumes) and maintain proper metrics, alarms, and traces. This is crucial for supporting daily operations and ensuring product growth, especially as the system matures beyond migration.