A module that got its own database and gave it back

Splitting the billing schema onto its own instance in 2021, and rejoining it three years later because every report crossed the boundary.

what the split cost, per year:

  reports rewritten as two queries plus a join in
    application code            7 of them
  a nightly sync so one side could read the other's
    reference data              1 job, 3 incidents
  transactions that spanned
    both                        impossible, so an
                                outbox where a foreign
                                key would have done
  backup and restore            two procedures, one
                                of which was never
                                drilled

what it bought: nothing that was used.

The reason given in 2021 was independent scaling, which never happened because the load was never the problem. Rejoining meant restoring seven foreign keys and deleting a sync job, and the reports went back to being one query — the honest summary is that a database boundary is the most expensive boundary available and it should be the last one drawn, not the first.