My point of view:

The message contains momentary and unchangeable information about the
event. All reference data is (in general) changeable, unless you
guarantee historical records that will ALWAYS represent the structure
and the content at the moment in time the event took place. And
moreover, the referenced data must be available for all current and
future consumers of the respective message. These consumers might all
be unknown from the publishers perspective and even to you as the
designer of the system. 

You can compare the modeling of the message with modeling a data
warehouse (to a certain extend). Data normalization (creating
references) in relational databases serves efficient and consistent
change to maintain integrity. As the data in the message - just like
in a data warehouse - does not change, the data is modeled to serve
availability and not to serve integrity during change.

The data in the message is denormalized, just like you denormalize the
data in a datawarehouse. And just like you may want to avoid
references from a data warehouse to external data stores, the same
applies to event messages.

-Jack

Reply via email to