The challenge
A regional payments firm was running balances on a 12-year-old monolith. Month-end close took nine days, and a single lock timeout could freeze merchant payouts.
What we shipped
We split posting, reporting, and payouts into audited services with exactly-once handlers, a double-entry store in Postgres, and a read model for the merchant dashboard. Ops got a replay tool instead of weekend SQL.
