Send messages on all domain events
Every time "something interesting" happens in system, an event should be generated and send to an event store that stores the event. Information can be retrieved from the event store or updated, as well as history generated for all entities in the system.