monitoring

  • Two scheduled jobs nobody could account for

    A cron listing with eleven entries, of which two called commands that no longer existed. A cron job whose command does not exist fails silently unless something checks…

  • The test that had been quarantined since 2023

    A quarantine list with a deadline, three extensions, and one test covering a payment path that had been skipped for three years.

  • A pipeline described in one file, after four years of five

    Five workflow files, two composite actions, and nobody able to say what runs when. A change that needed editing three files, one of them wrong.

  • A drill that induced the same failure deliberately

    The April incident reproduced on purpose in May, to check whether the fix worked. Reproducing an incident deliberately is the only way to know a fix works, and…

  • Split-brain, and the check that refuses to promote

    A manual failover, and a guard against the case where the old primary is still writing. Refusing to promote while the old primary answers is the check that…

  • The certificate scan, two quarters on

    A quarterly scan of our own address space, after the first run found two things nobody owned. The first run of a scan like this finds the accumulated…

  • An event with no consumer, published for the last time

    An event dispatched on every order since 2021, subscribed to by a module that no longer exists. The monthly report had been correct since the module was discontinued…

  • The reporting database that is not a replica

    A read replica serving reports, and reports that want a different schema. Eleven indexes on production tables that exist only for reporting.

  • DNS failover, and the resolver that ignored the TTL

    A sixty-second TTL, and traffic that took forty minutes to move. A sixty-second TTL produces four-minute failover for the great majority and a long tail that cannot be…

  • Building an MCP server for a database

    turkerdev/mysql-mcp, and what a protocol for tool access actually requires. The authorisation model is the host’s problem, which means it is all yours.