Refactored common DomainEvent and DomainCommand and added ICacheProvider