public async Task AddAsync(TEntity aggregateRoot)
    {
        var events = EventDataFactory.CreateFromDomainEvents(aggregateRoot.GetChanges());

        var streamId = GenerateStreamId(aggregateRoot.Id);
        await _connection.AppendToStreamAsync(streamId, ExpectedVersion.Any, events);
    }