mysql

  • Retention split by class, on 900 million rows

    One table with two retention requirements, seven years apart, and no column distinguishing them. The technical work was a generated column and a backfill; the work that took…

  • Anonymising rows that must be kept and must not identify

    Financial records retained for seven years, containing personal data that may not be retained that long. Keeping the postcode district and discarding the rest is the compromise that…

  • The backup that had to leave the building

    Every backup in one provider’s object storage, and a disaster recovery plan that assumes the disaster is local.

  • A schema cached rather than migrated, per job

    188 migrations run at the start of every CI job, replaced by a dump loaded in nine seconds. The staleness check is what makes this safe, and without…

  • A database per process, and the isolation it buys

    Parallel test processes sharing one database, and the transaction-per-test isolation that stops working under concurrency. Loading the schema from a dump rather than migrating is what makes eight…

  • The archive table nobody could delete from

    900 million rows, a retention policy, and a legal question nobody had asked. A table that grows forever because deleting from it might be illegal.

  • A test suite that runs on every commit, in ninety seconds

    Four minutes forty is fine and ninety seconds changes behaviour. The threshold below which running the suite stops being a decision.

  • The read model that finally earned its place

    A projection deleted in 2023 for being premature, rebuilt in 2025 because the query is now eleven seconds.

  • Testing a migration forwards on a copy of production

    A migration tested against an empty schema, run against nine hundred million rows, and taking four hours instead of four seconds. The restore drill already produced a full…

  • A partition drop that finally ran

    A partitioning scheme built in 2023 for a retention policy that nobody had authority to enforce until this year. Dropping one partition a day rather than all of…