Added cache, event persistence query methods and domain models using the 'Apply' pattern.