queues

  • The command bus we removed

    A command bus introduced in 2021, and 88 commands with one handler each. A stack trace with four frames of dispatch before the work.

  • 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.

  • Message versioning, and the field added five years ago

    An additive-only message policy, and an optional field from 2021 that every consumer now requires. An optional field that everybody depends on is a required field with no…

  • An outbox relay on two hosts, and the partition key

    A second host, and a relay that must not run twice against the same rows. The modulo on a hash of the aggregate identifier preserves per-aggregate ordering while…

  • A consumer that was deleted with its module

    A queue consumer removed along with the module it belonged to, and the queue that kept receiving messages. A TTL on a queue turns an unconsumed backlog into…

  • A webhook we stopped sending

    An outbound webhook with two subscribers, both of whom had stopped consuming it and neither of whom had said so. Delivering successfully to somebody who discards it is…

  • A dead letter queue that stayed at zero

    A queue that reached zero in 2025, and twelve months of staying there. An empty dead letter queue is not the goal and is a signal — a…

  • A copy tool rejected because of a trigger

    An online schema change tool that works by adding triggers, on a table an outbox relay polls. The tool is well understood and the interaction with an existing…

  • A queued job that took its own arguments too literally

    A job constructed with a model, serialised, and executed against a row that had changed in the intervening four minutes. Framework model serialisation re-fetches by identifier, which is…

  • A profile of the queue worker rather than the request

    Months of profiling the web path, and a queue worker consuming three times the CPU that nobody had ever looked at. Profiling follows attention and attention follows user-visible…