public async Task Handle(PersonCreatedEvent @event) { var person = @event.Person; var filter = CreateFilter(person); Transaction = TransactionManager.BeginTransaction(); try { await HandleCategoryCounters(filter); await HandleCityCounters(person, filter); TransactionManager.CommitTransaction(Transaction); await Sender.NotifyAll(); } catch (Exception e) { TransactionManager.RollBackTransaction(Transaction); throw e; } }