A handler documented as idempotent since 2022, which was not, and a redelivery that proved it. A docblock claiming idempotency is a claim and not a mechanism, and…
A dead letter queue that had held between forty and eight thousand messages since 2019, empty for the first time. An empty dead letter queue is not the…
A single relay process that had become the throughput ceiling, split into two by partitioning on the aggregate identifier. The modulo on a hash of the aggregate id…
A change made in 2024 to send identifiers rather than snapshots, and what a year of it produced. The lookup cost is trivial when the consumer shares a…
A message carrying the full order including every line, every address and the customer record, because it was easier than a lookup. Fat messages are defended as avoiding…
A relay process that died on an unhandled exception and left rows accumulating with no error anywhere. The second alert is the one that mattered: the relay stopped…
Every deploy restarting six consumers at once, triggering a rebalance that stops consumption for forty seconds. Rolling the restarts is the obvious answer and it is slower, which…