Promote only what you route on
Promote a field to a variable when, and only when, a subscription filters on it, a router branches on it, or an operator needs it for tracking. Everything else stays in the message body. A wide promoted context is cost without benefit.
Promoted variables are the routing and visibility surface of a message — the small set of values the bus and the operator reason about. It is tempting to promote “just in case,” but every promotion is something to populate, carry, maintain and reason about. Dozens of speculative promotions make filters harder to read and bury the two or three fields that actually drive routing.
Promote with a reason. If you cannot name the subscription, router or tracking view that consumes a value, leave it in the body where it already lives — it is still there if a real need appears later. This keeps the context lean and the routing logic legible, for operators and for the AI engine alike.