Event sourcing
Instead of storing only the latest state and losing how you got there, keep the events. The ordered stream of canonical events is the source of truth, and current state is simply what you get by replaying them in order.
An event-sourced view treats each change as an immutable canonical event — OrderPlaced, LineAdded, OrderShipped — appended to the log. State is derived by folding the events together; because the log is durable and ordered on the bus, you can rebuild that state at any time, or reconstruct what it was at any past point.
This builds directly on message-history & replay: where replay re-runs messages to recover, event sourcing makes that history the system of record. It pairs well with publish-subscribe, since any number of read models can each fold the same event stream into the shape they need.