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.