public async Task <Exception> ProcessEvents(Aggregate aggregate)
        {
            foreach (var domainEvent in aggregate.Outbox.ToArray())
            {
                try
                {
                    var handler = GetHandler(domainEvent);

                    await handler.Handle(domainEvent, _serviceFactory);

                    aggregate.ClearEvent(domainEvent);
                }
                catch (Exception ex)
                {
                    return(ex);
                }
            }

            return(null);
        }