← Back to Stories

Stories · TMEGS

The New York Times completes its Oracle to Aurora PostgreSQL migration in 12 weeks

Mactores and AWS moved PLATO, the system that runs New York Times subscriptions, off Oracle and onto Amazon Aurora PostgreSQL.

  • App & Database
  • TMEGS
  • Amazon Aurora PostgreSQL
  • AWS DMS
  • AWS SCT
  • Amazon Bedrock
nyt-home-960

Two phases

7

weeks to build

5

weeks to test and release

What Mactores delivered for The New York Times

Manual plan

12–15 months

estimated to modernize PLATO by hand

With Mactores

12 weeks

from kickoff to go-live

Time to go-live, drawn to scale
By hand 12–15 months, estimated
Mactores 12 weeks Just under a fifth of the track. 12 weeks to go-live

Each track spans 15 months, the top of the manual estimate; the shaded end of the first bar is that estimate’s range. Hover the Mactores bar for the value.

The customer

About The New York Times

The New York Times is a leading American newspaper and digital media company, and its subscription business serves millions of digital and print readers worldwide.
  • Headquarters New York, US East
  • Industry Media · Digital subscriptions
  • System in scope PLATO, the subscription engine
  • Before the move Oracle
The New York Times at a glance. Source: The New York Times

The challenge · 01

The problem

PLATO sits on the Times’ revenue path, and two things stood in the way of modernizing it.
  • The database Locked to Oracle PLATO ran on a proprietary legacy database, so its schema and the SQL written against it all had to change.
  • The manual route A 12 to 15 month program Doing that work by hand carried more cost, time and execution risk than a system on the revenue path could take.
 

Three goals for the program

Leaving Oracle was settled. These goals set how it had to happen.
  • Modernize PLATO off Oracle with no disruption to subscription revenue.
  • Land on an AWS-native, open-source database.
  • Fit the manual program’s timeline into a single quarter.

We tried this migration five times in six years and failed every time. Mactores delivered it in twelve weeks. First attempt.”

Joe Cora, Senior Technology Manager, The New York Times

How Mactores delivered · 02

Twelve weeks, split between a migration agent and senior engineers

Mactores ran the program on its agent-native delivery model: the agent took the work that grows with the size of the codebase, and senior forward-deployed engineers took the work that needs judgment.

Agent Mactores migration agent

Engineers Senior forward‑deployed engineers

Phase 1 · Build

Weeks 1 to 7 · assessment and conversion

Agent

  1. Assessment

    Maps the codebase into a code graph

  2. Schema conversion

    Brings tables and objects across to PostgreSQL

  3. SQL remediation

    Rewrites the SQL that won’t convert as-is

Engineers

  1. Complex logic

    Takes the logic too intricate to automate

Phase 2 · Test and release

Weeks 8 to 12 · validation and cutover

Agent

  1. Validation at scale

    Compares data and results between the two databases

Engineers

  1. HA/DR readiness

    Builds failover and recovery for the new database

  2. Cutover

    Moves PLATO’s traffic from Oracle to Aurora

PLATO 6M lines of code

Oracle Amazon Aurora PostgreSQL

· kickoff · go-live

Mactores’ agent-native delivery
How PLATO’s 12 weeks were divided between the migration agent and the engineers.

The work

The AWS services behind the move

This is Mactores’ Application & Database Modernization work in practice, with each AWS service covering one part of an Oracle exit.

Amazon Aurora PostgreSQL

Runs PLATO’s database from go-live onward

AWS Schema Conversion Tool

Handles the automated share of the schema conversion

AWS Database Migration Service

Carries the data from Oracle into Aurora

Amazon Bedrock with Claude

Supplies the model the migration agent reasons with

Amazon Bedrock AgentCore

Runs the migration agent’s workloads on AWS

Delivery · 03

Ready before the switch, not after

AWS and Mactores delivered the program jointly on a fixed bid, and PLATO went live on Aurora with every one of these checks already passed.
At go-live
row-level validation
100%
test results on PostgreSQL
All green
downtime during the cutover
Minimal
HA/DR in place, with rollback ready
Day 1

In production · 04

The outcome

Oracle is retired on PLATO, and the Times’ subscription engine now runs on Amazon Aurora PostgreSQL.
PLATO’s database, before and after
Before
Oracle
Now
Amazon Aurora PostgreSQL

Live since 1 June 2026

What we ship · Application & Database Modernization

Planning your own exit from Oracle?

Mactores modernizes Oracle estates on AWS, from the first look at the code to the day the new database carries live traffic.

Want to see how the migration agent works? Explore Mactores’ AI agent expertise.