You should avoid sharing event sourcing events, outside of y...

You should avoid sharing event sourcing events, outside of your service, as they are heavily intertwined with the service’s implementation details.

Multiple independent consumers who want to obtain a current copy of the cart state would have to then compute it all on their own, duplicating cart-building logic across multiple systems. Doing this is very risky for several reasons: the cart composition logic may change over time, requiring synchronized updates to multiple consumers, the consumer may fail to compute the cart state correctly, which may go unnoticed, and cause difficult to track down errors, and the consumer application may fail to include an event type in their computations.

Fact events are a better API for external consumers, as it is less likely to evolve over time, and reduces coupling.

www.joshbeckman.org/notes/632781407