private void UpdateSnapshot(string matchId) { // 1. get the match by replaying events // 2. extract the status data to denormalize var allEvents = EventStore.All(matchId); var replayedMatch = Replay(allEvents); if (replayedMatch == null) { return; } // Adapt from domain model to persistence model and save var persistableMatch = CopyFrom(replayedMatch); _matchRepository.Save(persistableMatch); }