'Why send all the data in a fact event if it hasn't changed?...

“Why send all the data in a fact event if it hasn’t changed? Why not simply send the delta?” One of the biggest reasons for using fact events is due to its simplicity and effectiveness in transferring state. This pattern is known as event-carried state transfer, which is one of the best ways to asynchronously distribute immutable state to all consumers who need it.

As a consumer, you do not have to build up the state yourself from multiple delta event types. This can be risky and error-prone, especially as data schemas evolve and change over time. Instead, you rely on the team that owns that section of that business to compute and produce a fully detailed fact event that acts as a data-transfer object.