Message payloads that had grown to 200 KB

A message carrying the full order including every line, every address and the customer record, because it was easier than a lookup.

one order.placed message, measured:

  identifiers and metadata      0.4 KB
  order lines (avg 4, max 200)  2 KB – 180 KB
  customer, fully serialised     3 KB
  addresses × 2                  1 KB
  ─────────────────────────────────────
  average 12 KB, p99 200 KB

41,000 a day. and every consumer used the id and two
fields.

Fat messages are defended as avoiding a lookup and the lookup is what every consumer does anyway, because the payload is a snapshot and they need the current state. Reducing it to identifiers and the two fields that are genuinely point-in-time took the average to 0.6 KB and removed a class of problem — a payload large enough to be rejected by a broker limit at the ninety-ninth percentile.