The existing billing engine couldn’t survive Black Friday.
Retries stacked on retries, reconciliation ran for 38 hours, and customer-facing invoices were three days behind ground truth.
We froze new features for six weeks, rebuilt the ledger as an append-only event log on Postgres, introduced Temporal for idempotent workflows, and shipped behind a shadow-write proxy that let us diff live production against the new system for three weeks before cutover.
Cutover completed during Q4 peak traffic with zero customer-visible downtime.
Reconciliation now runs in 4 minutes. The team shipped their next feature the day after launch.